为了报告目的,我需要透视每个记录上唯一的查询结果。我当前的声明是:
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兼容,那就太好了。
抱歉,长度不够。提前致谢。
另一个相关的子查询怎么样?将您的查询保存为Query1(您可能希望ORDER BY
从此中间Query中删除该子句-只需对最终结果集进行排序):
SELECT Q1.customer_name, Q1.order_date, Q1.price,
(
SELECT COUNT(*) + 1
FROM MyQuery AS Q2
WHERE Q2.customer_name = Q1.customer_name
AND Q2.order_date < Q1.order_date
) AS pivot_id
FROM MyQuery AS Q1;
问题内容: 我有一个简单的查询,像这样。 一个简单的枢轴给了我 给我 但是数据透视查询中的值是硬编码。我想从子查询中获取这些值。 但是,pivot不允许我从子查询中获取值,除了编写动态生成的查询之外,还有其他方法可以执行此操作吗? 问题答案: 不能。只能使用动态查询来完成。我真的很想知道是否有办法。
问题内容: 好吧,我有一张看起来像这样的表 现在,我需要将其转换为: 我一直在看动态透视图示例,但是我似乎无法使其适合我的情况。 有人可以帮忙吗? 问题答案: 看下面的例子
问题内容: 如何执行枢纽功能 我有一张有数据的表 但我需要的格式为 这样。 如何执行数据透视功能以这种格式获取。 请帮帮我........ 我用过我的查询 结果显示为 但在这里我也有3个星期一的记录,而不是一个星期一的记录… 如何获得每天1天的一个记录…? 问题答案: 试试这个: PIVOT运算符未“消耗”的任何列将保留在最终结果集中,从而增加了基数。
我想在按“prop”分组后,根据“井”的值生成列well_rep。 类似于cur_group_id,但是数字在不同的组中从1开始?
问题内容: 我有这个查询 有什么方法可以替换 为(空字符串)吗?( 无需 修改CTE数据!) 问题答案: 使用: 输出: