2011-11-11 38 views
2

我需要完成以下操作,但需要对EntryValue进行SUM处理,其中EntryType ='C' - EntryType ='D'但不确定将其包含在哪里。SQL Select Sum查询

SELECT SUM(EntryValue) AS EntryValue, Left(Warehouse,1) AS Branch 
FROM GenJournalDetail INNER JOIN InvJournalCtl ON (GenJournalDetail.GlPeriod = InvJournalCtl.LedgPeriod) AND (GenJournalDetail.GlYear = InvJournalCtl.YearPostLedg) AND (GenJournalDetail.Journal = InvJournalCtl.GlJournal) 
WHERE GenJournalDetail.GlCode = 'Z5207550' AND GlYear = '2011' AND GlPeriod = '10' 
GROUP BY Left(InvJournalCtl.Warehouse,1) 

回答

2

选择它然后对它进行分组;

SELECT SUM(EntryValue) AS EntryValueTotal, EntryType, Left(Warehouse,1) AS Branch 
... 
GROUP BY Left(InvJournalCtl.Warehouse,1), EntryType 

编辑我不知道你想扣除;

SELECT 
    SUM(CASE EntryType 
     WHEN 'C' THEN EntryValue 
     ELSE 0 END 
    ) 
    - 
    SUM(CASE EntryType 
     WHEN 'D' THEN EntryValue 
     ELSE 0 END 
    ) AS EntryValueTotal, 
    Left(Warehouse,1) AS Branch 
FROM GenJournalDetail 
    INNER JOIN InvJournalCtl ON (GenJournalDetail.GlPeriod = InvJournalCtl.LedgPeriod) AND (GenJournalDetail.GlYear = InvJournalCtl.YearPostLedg) AND (GenJournalDetail.Journal = InvJournalCtl.GlJournal) 
WHERE 
    GenJournalDetail.GlCode = 'Z5207550' AND GlYear = '2011' AND GlPeriod = '10' 
GROUP BY Left(InvJournalCtl.Warehouse,1) 
+0

我很抱歉,但这个答案没有任何意义。 –

+0

对不起,我有大脑的EntryValue,我需要改进的领域是如果EntryType ='D'没有输入值 – lewiscooksey

+0

@ t-clausen.dk是的你的权利,我没有给予足够的关注的问题,SUM EntryValue)EntryValue可能是一个字符没有意义 –

0

如果您需要总结列添加它的选择和组:

SELECT SUM(EntryValue) AS TotEntry, ... 
... 
GROUP BY ... 

你不需要团的集合列;你需要过滤查询吗?

+0

我是否需要按EntryType进行分组?我需要从另一个减去一个总数。 – lewiscooksey

+0

对不起,我不明白你需要什么。你想要查询什么? –

+0

不要尝试总结,而你选择入境价值,这是错误的! –