Sql 对两个表中的重复行值求和
我试图从一行中的两个表中获取以下信息,但当我使用group by时,我总是得到两行信息: 文档标题Sql 对两个表中的重复行值求和,sql,group-by,sum,Sql,Group By,Sum,我试图从一行中的两个表中获取以下信息,但当我使用group by时,我总是得到两行信息: 文档标题 Section Doc Year Nr SEC1 PATAG 2017 7386 单据行 Section Doc Year Nr Line Type Quantity SEC1 PATAG 2017 7386 0 1.000000 SEC1 PATAG 2017 7386 4
Section Doc Year Nr
SEC1 PATAG 2017 7386
单据行
Section Doc Year Nr Line Type Quantity
SEC1 PATAG 2017 7386 0 1.000000
SEC1 PATAG 2017 7386 4 2.000000
质疑
查询结果
Section Doc Year Nr Quantity Qtd Client Qtd Warranty
SEC1 PATAG 2017 7386 1.00 1.00 0.00
SEC1 PATAG 2017 7386 2.00 0.00 2.00
期望结果
Section Doc Year Nr Quantity Qtd Client Qtd Warranty
SEC1 PATAG 2017 7386 3.00 1.00 2.00
提前感谢。您的
群组中的属性太多了。
:您应该删除lin.intTpEntPagador
。这也意味着您必须更改案例/总结:
Cast(SUM(CASE WHEN lin.intTpEntPagador = 0 THEN lin.fltQuantidade ELSE 0 END) as
NUMERIC (15,2) ) as [Qtd Client]
您还应该删除
独立的,如果您也分组依据
则它没有任何功能。您的分组依据
中的属性太多:您应该删除lin.intTpEntPagador
。这也意味着您必须更改案例/总结:
Cast(SUM(CASE WHEN lin.intTpEntPagador = 0 THEN lin.fltQuantidade ELSE 0 END) as
NUMERIC (15,2) ) as [Qtd Client]
您还应该删除独立的
,如果您还按分组
尝试将您的SUM()
移动到您的案例之外,则它没有任何功能:
SELECT cab.strCodSeccao as [Section],
cab.strAbrevTpDoc as [Doc],
cab.strCodExercicio as [Year],
cab.intNumero as [Nr],
CAST(SUM(lin.fltQuantidade) as NUMERIC (15,2)) as [Quantity],
CAST(SUM(CASE WHEN lin.intTpEntPagador = 0
THEN lin.fltQuantidade
ELSE 0
END) AS NUMERIC (15,2)) as [Qtd Client],
CAST(SUM(CASE WHEN lin.intTpEntPagador = 4
THEN lin.fltQuantidade
ELSE 0
END) AS NUMERIC (15,2)) as [Qtd Warranty]
旁注,如果您已经有了一个分组依据
请尝试将您的SUM()
移动到您的案例之外,则无需在此处使用DISTINCT
:
SELECT cab.strCodSeccao as [Section],
cab.strAbrevTpDoc as [Doc],
cab.strCodExercicio as [Year],
cab.intNumero as [Nr],
CAST(SUM(lin.fltQuantidade) as NUMERIC (15,2)) as [Quantity],
CAST(SUM(CASE WHEN lin.intTpEntPagador = 0
THEN lin.fltQuantidade
ELSE 0
END) AS NUMERIC (15,2)) as [Qtd Client],
CAST(SUM(CASE WHEN lin.intTpEntPagador = 4
THEN lin.fltQuantidade
ELSE 0
END) AS NUMERIC (15,2)) as [Qtd Warranty]
旁注,如果您已经有了一个分组依据