TSQL,获取条件为X的ParentId的子记录

时间:2019-06-04 15:44:05

标签: tsql

目标是检索用户的逾期金额摘要。 group by子句似乎是问题所在,因为SUM函数调用需要它。 我知道可以通过子查询来实现,但出于性能原因,我想避免这种情况。

SELECT      u.Name      AS 'UserName'
        SUM(i.Amount)   AS 'PastDue'
FROM        [User] u
LEFT JOIN   [Invoice] i
ON      i.UserId = u.Id
WHERE       i.DueDate > GETDATE()
AND     i.Paid = 0
GROUP BY ???

表[用户]

Id  Name
1   John
2   Mike
3   Brian
4   Todd
5   Asyan

表[发票]

Id  UserId      Amount      DueDate     Paid
1   1       100     1/1/2019    0
2   1       100     1/2/2019    0
3   5       200     1/1/2019    1
4   5       200     1/2/2019    1
5   5       200     1/3/2019    0

预期结果

UserName    PastDue
John        200
Asyan       200

1 个答案:

答案 0 :(得分:1)

此查询检查“大于=IF(COUNTIFS(C1:C2,"Yes")=0,"N/A", CONCAT(IF(C1="Yes","Description 1,",""), IF(C2="Yes","Description 2,","")) ) ”。您可能的意思是GETDATE()duedate小。

以下查询将为您提供预期的结果:

getdate()