Sql 使用相同外键求和INT值
我需要采取下表,并显示2018年日期的每项索赔的总伤害付款金额。。。我使用以下代码,但无法将ClaimID1作为单个值输出(与三个值相反) 更新-我有一个类似的表“propertycaimpmt”,我正在尝试将这些表连接在一起,希望得到类似的结果。我想在一列中列出索赔,在另一列中列出索赔总额,但必须是2018年的索赔。我尝试了一个并集,但它从一个表中删除了一个值,而没有对另一个表中的不同值求和Sql 使用相同外键求和INT值,sql,sql-server,select,sum,Sql,Sql Server,Select,Sum,我需要采取下表,并显示2018年日期的每项索赔的总伤害付款金额。。。我使用以下代码,但无法将ClaimID1作为单个值输出(与三个值相反) 更新-我有一个类似的表“propertycaimpmt”,我正在尝试将这些表连接在一起,希望得到类似的结果。我想在一列中列出索赔,在另一列中列出索赔总额,但必须是2018年的索赔。我尝试了一个并集,但它从一个表中删除了一个值,而没有对另一个表中的不同值求和 Select ClaimID, SUM(PropPaymentAmt) as TotalClaim
Select ClaimID, SUM(PropPaymentAmt) as TotalClaims2018
from PropertyClaimPmt
where PropPaymentDate >= '2017-12-30' and PropPaymentDate <='2018-12-28'
group by ClaimID
Union
Select ClaimID, SUM(InjuryPaymentAmt) as TotalClaims2018
from PersonalInjuryPmt
where InjuryPaymentDate >= '2017-12-30' and InjuryPaymentDate < '2018-12-29'
group by ClaimID;
选择ClaimID,SUM(PropPaymentAmt)作为TotalClaims2018
来自PropertyClaimPmt
其中PropPaymentDate>='2017-12-30'和PropPaymentDate='2017-12-30'以及InjuryPaymentDate<'2018-12-29'
按ClaimID分组;
您应该只按
ClaimID
进行分组:
SELECT SUM(InjuryPaymentAmt) as TotalClaims2018, ClaimID
FROM PersonalInjuryPmt
WHERE YEAR(InjuryPaymentDate) = 2018
GROUP BY ClaimID;
分组依据
指定结果集中的行。group by键的每个唯一组合(存在于数据中)都位于结果集中,每行一个组合。因为您希望每个ClaimId
有一行,所以这应该是分组依据中的唯一列
我通常将聚合键列放在选择
中的第一位,然后是聚合表达式:
Select ClaimID, SUM(InjuryPaymentAmt) as TotalClaims2018
from PersonalInjuryPmt
where InjuryPaymentDate between '2017-12-30' and '2018-12-28'
group by ClaimID;
由于带时间组件和不带时间组件的日期之间存在混淆,因此更安全的做法是将日期逻辑写成:
Select ClaimID, SUM(InjuryPaymentAmt) as TotalClaims2018
from PersonalInjuryPmt
where InjuryPaymentDate >= '2017-12-30' and
InjuryPaymentDate < '2018-12-29'
group by ClaimID;
选择ClaimID,SUM(InjuryPaymentAmt)作为TotalClaims2018
来自PersonalInjuryPmt
其中InjuryPaymentDate>='2017-12-30'和
伤害付款日期<'2018-12-29'
按ClaimID分组;
即使InjuryPaymentDate
有时间组件,这也会起作用 将InjuryPaymentDate从组中删除?谢谢-这就是我要找的。
Select ClaimID, SUM(InjuryPaymentAmt) as TotalClaims2018
from PersonalInjuryPmt
where InjuryPaymentDate >= '2017-12-30' and
InjuryPaymentDate < '2018-12-29'
group by ClaimID;