2011-11-11 5 views
2

다음을 완료해야하지만 EntryType = 'C'- EntryType = 'D'인 EntryValue에 SUM을해야하지만 포함 할 위치가 확실하지 않아야합니다.SQL Select Sum Query

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 네 오른쪽. EntryValue) EntryValue가 문자 일 수 있음 –

0

당신이 요약해야하는 경우 열이 선택 및 그룹에 추가 : 그룹 집계 열 필요가 없습니다

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

; 당신도 쿼리를 필터링해야합니까?

+0

EntryType별로 그룹화해야합니까? 나는 합계를 줄 다른 하나에서 마이너스해야합니다. – lewiscooksey

+0

죄송합니다. 필요한 것을 이해하지 못합니다. 쿼리로 얻고 자하는 것이 무엇입니까? –

+0

entryvalue를 선택하는 동안 합계를 시도하지 마십시오. 잘못되었습니다! –