每日汇总金额的SQL数据透视表

时间:2015-01-13 21:18:15

标签: java sql ucanaccess

我在sql中没有多少经验。在我使用ucanaccess库的小java程序中,我能够在创建一个简单的表(名为ReportSales)后执行一些简单的查询。该表是:

ID  DATE            PRODUCT     SALES       FEES
1   2014-10-02      productA    10.000      100
2   2014-09-02      productC    12.000      240
3   2014-09-02      productA    8.000        80
4   2014-11-02      productB    7.000       105
5   2014-08-02      productB    6.000        90
..  ..........      ........    ......      ....
..  ..........      ........    ......      ....

最后一项任务是创建一个数据透视表,在其中插入每个产品的月销售额。类似的东西:

PRODUCT     AUG         SEP         OCT      NOV
productA    0         8.000      10.000        0
productB    6000          0           0     7000
productC    0        12.000           0        0

月费的另一个支点

我的(错误的)尝试是:

SELECT [8] as AUG, [9] as SEP, [10] as OCT, [11] as NOV
FROM
(SELECT SALES,MONTH(DATE) 
    FROM ReportSales) AS tmp
PIVOT
(
SUM(SALES)
FOR MONTH(DATE) IN ([8], [9], [10], [11])
) AS PivotTable

有人可以帮助我吗?提前致谢

1 个答案:

答案 0 :(得分:1)

UCanAccess支持Pivot查询,只有它们是在Access中构建的,因此您首先要使用Access IDE创建交叉表查询。 或者您可以在Access中直接创建一个新查询,直接输入以下SQL:

TRANSFORM sum(ReportSales.sales) AS SalesCount
SELECT ReportSales.product
FROM ReportSales
GROUP BY ReportSales.product
PIVOT Format([date],"mmm");

然后假设您将查询保存为query1,您只需使用UCanAccess执行:

Select * from query1;