【发布时间】:2009-06-01 14:44:44
【问题描述】:
我有 5 个查询要一起加入。基本上,他们所做的就是浏览数据库,然后根据租客多久之前的收费来选择租户支付了多少,以及租户欠了多少。
我有四个类别
充电
充电 = 30 天
充电 = 60 天
充电 > 90 天
我知道如何分别获取所有这些值,但是如何将它们汇总在一起,加上租户支付的金额?
以下是我的疑问:
租户已支付的金额
SELECT TransactionCode, TenantID, SUM(Amount) AS Paid FROM tblTransaction
WHERE Amount > 0
GROUP BY TransactionCode, TenantID
收费不到 30 天
SELECT TransactionCode, TenantID, SUM(Amount) AS ChargedCurrent FROM tblTransaction
WHERE Amount < 0 AND TransactionDate > DATEADD("dd", -30, GETDATE())
GROUP BY TransactionCode, TenantID
收费不到 60 天,但超过 29 天
SELECT TransactionCode, TenantID, SUM(Amount) AS ChargedOver30 FROM tblTransaction
WHERE Amount < 0 AND TransactionDate > DATEADD("dd", -60, GETDATE()) AND TransactionDate <= DATEADD("dd", -30, GETDATE())
GROUP BY TransactionCode, TenantID
收费不到 90 天,但超过 59 天
SELECT TransactionCode, TenantID, SUM(Amount) AS ChargedOver60 FROM tblTransaction
WHERE Amount < 0 AND TransactionDate > DATEADD("dd", -90, GETDATE()) AND TransactionDate <= DATEADD("dd", -60, GETDATE())
GROUP BY TransactionCode, TenantID
费用超过 89 天
SELECT TransactionCode, TenantID, SUM(Amount) AS ChargedOver90 FROM tblTransaction
WHERE Amount < 0 AND TransactionDate <= DATEADD("dd", -90, GETDATE())
GROUP BY TransactionCode, TenantID
如何通过一次查询获得所有这些信息?
【问题讨论】:
标签: sql sql-server-2005-express