gpt4 book ai didi

SQL查询问题

转载 作者:行者123 更新时间:2023-12-04 16:04:49 24 4
gpt4 key购买 nike

我目前正在学习 SQL,但在确定如何执行以下操作时遇到了一些问题:

表格:

Planned Order
id Item Date
0 1 2011-01-24
1 1 2011-01-26
2 1 2011-01-28
3 2 2011-01-24
4 3 2011-01-27

Customer Order
id Item Date
4 2 2011-01-25
3 2 2011-01-24
2 2 2011-01-24
1 1 2011-01-26
0 1 2011-01-24

我正在尝试生成以下将生成的查询:

Item  Category          2011-01-24      2011-01-25   2011-01-26   
1 Customer_Order 1 NULL 1
1 Planned_Order 1 NULL 1
2 Customer_Order 2 NULL NULL
2 Planned_Order 1 NULL NULL
3 Planned_Order NULL NULL NULL

日期下的计数是当天订购该商品的次数。

这甚至可以用原始 sql 代码实现吗?我意识到这可以通过其他语言(例如 perl)来操作数据和通过多个数据库访问来完成,但我想直接从原始 sql 来完成。

我找不到将查询从列转换为行的命令(原始 sql)。我如何查询日期并为每个日期生成列,如上所示。

最佳答案

在 Sql Server (2005/2008) 中,有一个运算符可以完全满足您的需求 (PIVOT)

SELECT Item,Category,[2011-01-24], [2011-01-25], [2011-01-26]
FROM
(SELECT Item, 'Planned_Order' Category, Date
FROM [Planned Order]
union all
SELECT Item, 'Customer_Order', Date
FROM [Customer Order]
) AS SourceTable
PIVOT
(
COUNT(*)
FOR Date IN ([2011-01-24], [2011-01-25], [2011-01-26])
) AS PivotTable;

关于SQL查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4839544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com