gpt4 book ai didi

生成按月汇总表的SQL语句

转载 作者:行者123 更新时间:2023-12-04 20:56:16 25 4
gpt4 key购买 nike

我对高级SQL很陌生。假设我有下表(在 Access 中 - 在 VB.NET 中使用 Jet 4.0 OLEDBAdapter)。

表 - 项目

ID     Date      Account  Amount
----- ------ ------- ------
1 1/1/2013 Cash 10.00
2 2/1/2013 Cash 20.00
3 1/2/2013 Cash 30.00
4 2/2/2013 Cash 40.00
5 1/1/2013 Card 50.00
6 2/1/2013 Card 60.00
7 1/2/2013 Card 70.00
8 2/2/2013 Card 80.00

我想生成以下内容 - 每个帐户每月的总计

表格 - 总计

Account  Jan       Feb
----- ----- ------
Cash 30.00 70.00
Card 110.00 150.00

这是否可能使用一个 SQL 语句。我可以分两次完成,但速度很慢。

编辑 - 我得到的最接近的是这个 - 但它不会生成列

SELECT    accFrom, Sum(amount) 
FROM Items
WHERE Year(idate) = '2012'
GROUP BY Month(idate), accFrom

最佳答案

使用您的示例数据,这是我使用 Access 2010 从下面的查询中获得的输出。

Account 2013-01 2013-02
------- ------- -------
Card $120.00 $140.00
Cash $40.00 $60.00

我的总数与您的预期输出不符。我怀疑您的日期值是 d-m-yyyy 格式,但我的美国语言环境将它们解释为 m-d-yyyy。最好以 yyyy-m-d 格式显示日期以避免混淆。

无论如何,此查询将日期格式化为 yyyy-mm,然后转换为每个年月组合生成列。因此它将适应不断增长的日期范围,而无需您修改查询。而且,随着日期范围的增加,您最终可以添加一个 WHERE 子句以将列限制为一个方便的子集。

TRANSFORM Sum(i.Amount) AS SumOfAmount
SELECT i.Account
FROM Items AS i
GROUP BY i.Account
PIVOT Format(i.Date,'yyyy-mm');

关于生成按月汇总表的SQL语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20894123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com