我的桌子看起来像这样:
Company | FCurrency | ... | FDate | FAmount
aaa | EUR | ... | 01-01-2014 | 5
aaa | EUR | ... | 01-02-2014 | 8
aaa | EUR | ... | 01-03-2014 | 9
aaa | EUR | ... | 01-04-2014 | -2
aaa | USD | ... | 01-01-2014 | 1
aaa | USD | ... | 01-02-2014 | 2
aaa | USD | ... | 01-03-2014 | 3
aaa | USD | ... | 01-04-2014 | 4
我想写一个查询结果如下:
Company | FCurrency | ... | 01-01-2014 | 01-02-2014 | 01-03-2014 | 01-04-2014 |
aaa | EUR | ... | 5 | 8 | 9 | -2 |
aaa | USD | ... | 1 | 2 | 3 | 4 |
我在excel中找到了一种在VBA中执行此操作的方法,但这需要很长时间(因为我有很多记录)所以我想如果访问可以为我做这件事要好得多。
在访问中我发现这篇文章:Displaying multiple columns from a single column select statement但它没有做我想要的,因为它仍然只输出每行一条记录,而不是将它们合并为一行。
同样要合并货币和公司,我知道如何处理GROUP BY,但我的问题是要有不同的“新”列,我不得不承认我在那里有点迷失。
提前致谢。
诉P>
答案 0 :(得分:3)
您想要的是交叉表查询。
您提供的示例数据/表的SQL
TRANSFORM Sum(FAmount) AS SumOfFAmount
SELECT Company, FCurrency
FROM MyTableName
GROUP BY Company, FCurrency
PIVOT FDate;