2011-11-11 21 views
2

次のように入力する必要がありますが、EntryType = 'C' - EntryType = 'D'のEntryValueにSUMを設定する必要がありますが、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'ではない場合はEntryValueが – lewiscooksey

+0

@ t-clausen.dkです。あなたの権利は、質問に十分な注意を払っていませんEntryValue)ここで、EntryValueは文字になる可能性がありません –

0

あなたが選択し、グループにそれを追加列を合計する必要がある場合:

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

あなたがグループに集約された列は必要ありません。あなたもクエリをフィルタリングする必要がありますか?

+0

EntryTypeでグループ化する必要がありますか?私は合計を与えるために、もう一方からマイナスのものが必要です。 – lewiscooksey

+0

申し訳ありませんが、私はあなたが必要なものを理解していません。あなたはクエリを取得したいですか? –

+0

あなたがentryvalueを選択している間に合計しようとしないでください、それは間違っています! –