SQL 透视 table 每月总金额
SQL Pivot table for monthly aggregate amount
我对 sql.In 我使用 ucanaccess 库的小 java 程序没有太多经验 在创建一个简单的 table(名为 ReportSales)后,我能够执行一些简单的查询。 table 是:
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
.. .......... ........ ...... ....
.. .......... ........ ...... ....
最后一项任务是创建一个数据透视表 table,我将在其中插入每个产品的月销售额。类似于:
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
有谁能帮帮我吗?提前致谢
UCanAccess 支持数据透视表查询,前提是它们内置于 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;
我对 sql.In 我使用 ucanaccess 库的小 java 程序没有太多经验 在创建一个简单的 table(名为 ReportSales)后,我能够执行一些简单的查询。 table 是:
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
.. .......... ........ ...... ....
.. .......... ........ ...... ....
最后一项任务是创建一个数据透视表 table,我将在其中插入每个产品的月销售额。类似于:
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
有谁能帮帮我吗?提前致谢
UCanAccess 支持数据透视表查询,前提是它们内置于 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;