我有一张包含以下记录的表格:
date, name, amount, balance, debit_credit.
此表格表示在一段时间内对几家公司进行观察的样本。
我想使用以下记录制作下表:
aggregate1, aggregate2, aggregate3, aggregate4, name.
其中:
aggregate1 - sum of amount for all names where balance equals 1500, 1501;
aggregate2 - sum of amount for all names where balance equals 1400, 1401;
aggregate3 - sum of amount for all names where balance equals 1300, 1301;
我编写了以下SQL查询来计算aggregate1。
SELECT Sum(Firms.amount)/100 AS [aggregate1], Firms.name
FROM Firms
where Firms.Balance in (1500, 1502)
GROUP BY Firms.name;
但是,我是如何将一个表(见上文)中的输出与不同的条件组合在一起? 此外,我想知道如何设置日期作为此查询的参数?
我将非常感谢您的建议和解决方案。谢谢您的考虑。
答案 0 :(得分:2)
也许是这样的:
SELECT
Firms.name,
SUM(iif(Firms.Balance IN (1500, 1502),Firms.amount,0))/100 AS aggregate1,
SUM(iif(Firms.Balance IN (1400, 1401),Firms.amount,0))/100 AS aggregate2,
SUM(iif(Firms.Balance IN (1300, 1301),Firms.amount,0))/100 AS aggregate3
FROM Firms
WHERE Firms.date >= #12/6/2012 3:54:15 PM#
GROUP BY Firms.name;
参考文献: