我想根据 StatusCode 的 where 条件将日期列解析为 2 列。
我的查询是:
select OrderID, StatusCode, Date_stamp
from xyz where StatusCode ='Shipped'
left join
select OrderID, StatusCode, Date_stamp
from xyz where StatusCode ='Ordered'
我尝试再次引入查询,简单地对 OrderID 进行左连接,并根据 where =ordered 仅引入 Date_stamp 列,认为它将把数据汇总到单个记录中。任何指导表示赞赏。
| OrderID | StatusCode | Date_stamp |
| -------- | --------- | -------- |
| 1 | Ordered | 1/1/2024 |
| 1 | Shipped | 1/5/2024 |
| 2 | Ordered | 1/22/2024 |
| 2 | null | null |
预期结果:
订单ID | 状态代码 | 订购日期 | 发货日期 |
---|---|---|---|
1 | 已发货 | 2024 年 1 月 1 日 | 2024 年 1 月 5 日 |
2 | 已订购 | 2024 年 1 月 22 日 | 空 |
这应该给出预期的输出 -
选择订单 ID、最大(状态代码)、最大(订购日期)、最大(发货日期) 从( 选择订单ID、状态代码、 当 StatusCode = 'Ordered' 时,则 Date_stamp else Null 结束为 OrderedDate, 当 StatusCode = 'Shipped' 时,则为 Date_stamp,否则为 Null,以 ShippedDate 结束 来自 xyz) 作为温度 按订单ID分组