[英]SQL Server SUM, but aggregating by another column
我正在使用以下SQL查詢來匯總項目中的所有付款類型:
SELECT
SUM(E2_SALDO) as SUM,
E2_ITEMD as PROJECT,
E2_ZFORPG AS TYPE
FROM
SE2010
WHERE
D_E_L_E_T_ = ''
AND E2_NUM BETWEEN '' AND 'ZZZZZZZZZZZZZZZ'
AND E2_PREFIXO BETWEEN '' AND 'ZZZ'
AND E2_NATUREZ BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_VENCREA BETWEEN '20140901' AND '20140915'
AND E2_PORTADO BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_FORNECE BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_EMISSAO BETWEEN '20000101' AND '20201231'
AND E2_ZFORPG BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_ZTPED BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_SALDO> 0 and E2_TIPO<>'PR' AND E2_ITEMD BETWEEN '' AND 'ZZZZZZZZZZZZZ'
GROUP BY
E2_ITEMD, E2_ZFORPG
我的結果看起來像這樣
SUM PROJECT TYPE
-----------------------------
848,15 F140319
7296,36 H1008 DOC
14534,02 H1008 TED
36041,33 K0104 BOL
11127,91 F140363 CAM
84841,43 H1008 CAM
500 CHQ
1600 K0309 CHQ
4124,91 DEB
200 F130702 DOC
3394,64 H1001 DOC
7674,54 H1001 TED
差不多了,但是我想“合並”一些結果,例如,我希望以“ H”開頭的項目的所有成本都在一起,例如:
SUM PROJECT TYPE
------------------------------
10691 H1001,H1008 DOC
22208,56 H1001,H1008 TED
84841,43 H1008 CAM
因此,在此示例中,它將“ H”項目(第一行)中所有內容的所有DOC
付款類型分組,對所有“ TED”付款類型(第二行)進行分組,並且在沒有其他項目時單獨顯示項目(第三行,因為任何地方都沒有“ H1001 CAM”)
如果可能的話,我想在某個地方手動通知組類型,因為有時我想同時擁有“ H”和“ K”項目,所以我想在()中通知“組”,就像在“ WHERE”中那樣TYPE IN(“第一”,“第二”)
謝謝!
編輯:運行Microsoft SQL Server 2008 R2
SELECT
SUM(E2_SALDO) AS sum,
E2_ITEMD =
STUFF((
SELECT
', ' + E2_ITEMD
FROM
SE2010 b
WHERE
b.E2_ITEMD = a.E2_ITEMD
AND b.E2_ITEMD LIKE '['+@yourProjectNameStartCharacters + ']%'-- H if only starting with H, HK if you want starting with h and k
FOR xml PATH ('')), 1, 2, ''),
E2_ZFORPG
FROM
SE2010
WHERE
D_E_L_E_T_ = ''
AND E2_NUM BETWEEN '' AND 'ZZZZZZZZZZZZZZZ'
AND E2_PREFIXO BETWEEN '' AND 'ZZZ'
AND E2_NATUREZ BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_VENCREA BETWEEN '20140901' AND '20140915'
AND E2_PORTADO BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_FORNECE BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_EMISSAO BETWEEN '20000101' AND '20201231'
AND E2_ZFORPG BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_ZTPED BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_SALDO > 0
AND E2_TIPO <> 'PR'
AND E2_ITEMD BETWEEN '' AND 'ZZZZZZZZZZZZZ'
AND E2_ITEMD LIKE '['+@yourProjectNameStartCharacters + ']%'-- H if only starting with H, HK if you want starting with h and k
GROUP BY
E2_ZFORPG
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.