Sql server 如何在sql联接中使用sum函数
如何在SQLServer2008的联接中使用sum函数Sql server 如何在sql联接中使用sum函数,sql-server,Sql Server,如何在SQLServer2008的联接中使用sum函数 SELECT SUM(d.TranTypeAmt), h.LnNo, h.LoanRcptAmt, d.Trantype, d.TranTypeAmt FROM LGen_LnInstClln_h h RIGHT OUTER JOIN LGen_LnInstClln_d d ON h.PK_Id = d.InstCllnHdr_FK WHERE h
SELECT SUM(d.TranTypeAmt),
h.LnNo,
h.LoanRcptAmt,
d.Trantype,
d.TranTypeAmt
FROM LGen_LnInstClln_h h
RIGHT OUTER JOIN LGen_LnInstClln_d d
ON h.PK_Id = d.InstCllnHdr_FK
WHERE h.LnNo = '40009'
当使用时,例如,您需要对其余数据项使用聚合函数,或按它们分组
select SUM(d.TranTypeAmt), h.LnNo,h.LoanRcptAmt,d.Trantype,d.TranTypeAmt
from LGen_LnInstClln_h h
right outer join LGen_LnInstClln_d d on h.PK_Id=d.InstCllnHdr_FK
where h.LnNo='40009'
GROUP BY h.LnNo,h.LoanRcptAmt,d.Trantype,d.TranTypeAmt
在使用聚合函数时,应该有一个GROUPBY子句,并在select列表中包含其他列 所以这里你应该加上
group by
h.LnNo,
h.LoanRcptAmt,
d.Trantype,
d.TranTypeAmt
在查询结束时上面的SQL有什么问题?您的
WHERE
子句将右外部联接转换为内部联接。这个问题没有说明表之间关系的基数。如果一个PK_Id与多个d.InstCllnHdr_FK匹配,则SUM函数将对这些多个匹配进行求和。这是Kalaivan想要的吗?通过使用上面的查询,以下错误显示列“LGen_lninstcln_h.LnRcptNo”在选择列表中无效,因为它不包含在聚合函数或GROUP by子句中。@Kalaivan:h.LnRcptNo不是此查询中选择列表的一部分。我想你不小心把它改了。如果按原样执行查询而不做任何更改,会发生什么情况?