我試圖總結相同column但條件不同的組,然后全部按"Cliente"(ID)
當我使用
SELECT Cliente, SUM([Valor Original]) As Emitidos FROM TAB_Documentos WHERE Condi??o = 0 GROUP BY Cliente
我得到了這個結果,但我需要加入/聯合"Baixados", "Devolvidos","Outros"然后將它們全部分組"Cliente"...

我試圖弄清楚如何加入那個 SQL 字串......基本上是我需要的,但我需要它們一起......
SELECT Cliente, SUM([Valor Original]) As Emitidos FROM TAB_Documentos WHERE Condi??o = 0 GROUP BY Cliente
SELECT Cliente, SUM([Valor Original]) As Baixados FROM TAB_Documentos WHERE Condi??o = 1 GROUP BY Cliente
SELECT Cliente, SUM([Valor Original]) As Devolvidos FROM TAB_Documentos WHERE Condi??o = 2 GROUP BY Cliente
SELECT Cliente, SUM([Valor Original]) As OutrosFROM TAB_Documentos WHERE Condi??o = 3 GROUP BY Cliente
uj5u.com熱心網友回復:
將過濾器放在聚合函式中,而不是使用WHERE子句......
(這通常被稱為conditional aggregation。)
SELECT
Cliente,
SUM(CASE WHEN Condi??o = 0 THEN [Valor Original] END) As Emitidos,
SUM(CASE WHEN Condi??o = 1 THEN [Valor Original] END) As Baixados,
SUM(CASE WHEN Condi??o = 2 THEN [Valor Original] END) As Devolvidos,
SUM(CASE WHEN Condi??o = 3 THEN [Valor Original] END) As Outros
FROM
TAB_Documentos
GROUP BY
Cliente
但是,SQL 通常更適合規范化資料。例如,最簡單的查詢實際上是......
SELECT
Cliente,
Condi??o,
SUM([Valor Original]) AS [Valor]
FROM
TAB_Documentos
GROUP BY
Cliente,
Condi??o
雖然這不是您要求的格式,但它更短且更容易在后續 SQL 中重用;這是 SQL 的設計方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/487368.html
