为了报告目的,我需要透视每条记录上唯一的查询结果。我目前的说法是:
SELECT *
FROM Sales AS x
WHERE (select count(*) from Sales where customer_name=x.customer_name
and order_date>=x.order_date)<=5
ORDER BY customer_name, order_date, price;
查询输出的示例是:
customer_name order_date price
Company A 2009-02-01 800
Company A 2009-03-01 100
Company A 2009-04-01 200
Company A 2009-05-01 300
Company A 2009-06-01 500
Company B 2009-02-01 100
Company B 2009-02-01 800
Company B 2009-04-01 200
Company B 2009-05-01 300
Company B 2009-06-01 500
最终,信息需要如下所示:
Customer_Name order_date1 price1 order_date2 price2 order_date3 price3 order_date4 price4 order_date5 price5
Company A 2009-02-01 800 2009-03-01 100 2009-04-01 200 2009-05-01 300 2009-06-01 500
Company B 2009-02-01 100 2009-02-01 800 2009-04-01 200 2009-05-01 300 2009-06-01 500
我在想我需要为“pivot_id”添加一个列,以便每个分组都有一个公共记录,因此数据透视之前的查询结果将如下所示:
pivot_id customer_name order_date price
1 Company A 2009-02-01 800
2 Company A 2009-03-01 100
3 Company A 2009-04-01 200
4 Company A 2009-05-01 300
5 Company A 2009-06-01 500
1 Company B 2009-02-01 100
2 Company B 2009-02-01 800
3 Company B 2009-04-01 200
4 Company B 2009-05-01 300
5 Company B 2009-06-01 500
什么 SQL 语句会为每次购买生成一个自动记录号,而且还会从每个 customer_name 重新开始?
使用 SQL 代码生成器在 Access 2007 中工作。如果解决方案与 Access 兼容,那就太好了。
对不起,长度。提前致谢。