我有查询
select order_no,
line_no,
type_id,
delivery_date
from orders
值为
CO_01 1 A 2018-01-01
CO_01 2 A 2018-01-01
CO_01 3 B 2018-01-10
CO_01 4 A 2018-01-01
总是有一个type_id B,交货日期不同。如何为所有行选择另一列名为max_delivery_date的列,其值将为类型B的delivery_date?
答案 0 :(得分:0)
在类型B内添加select max:
select order_no,
line_no,
type_id,
(
Select max(
delivery_date) as max_delivery
from orders with type_id='B')
As max_delivery_date
from orders
答案 1 :(得分:0)
不确定您要的是什么,但是我们可以在此处尝试使用解析函数。对于对应于单个MAX
的每组记录,下面对delivery_date
的调用将找到type_id
为B
的记录order_no
。 / p>
SELECT
order_no,
line_no,
type_id,
delivery_date,
MAX(CASE WHEN type_id = 'B' THEN delivery_date END)
OVER (PARTITION BY order_no) max_date
FROM orders;