Sql 根据现有结果选择另一个值-Oracle
我有以下生成特定输出的要求 表e\u t\dSql 根据现有结果选择另一个值-Oracle,sql,oracle,Sql,Oracle,我有以下生成特定输出的要求 表e\u t\d b_c e_no r_no o_b A XL25631 BC25896 B BC25896 XL25631 X0001 A RT85962 EW89656 L0002 B EW89656 RT85962 A BF12345 X0001 A BD456321 X0001 A DF85962 X0001 A WS25641 X0001 SELE
b_c e_no r_no o_b
A XL25631 BC25896
B BC25896 XL25631 X0001
A RT85962 EW89656 L0002
B EW89656 RT85962
A BF12345 X0001
A BD456321 X0001
A DF85962 X0001
A WS25641 X0001
SELECT t1.a_d,
(CASE
WHEN t1.o_b IS NULL AND t1.b_c = 'B'
THEN
(SELECT t1.o_b
FROM e_t_d t1
WHERE t1.e_no = t1.r_no AND t1.b_c = 'A')
WHEN t1.o_b IS NULL AND t1.b_c = 'A'
THEN
(SELECT t1.o_b
FROM e_t_d t1
WHERE t1.e_no = t1.r_no AND t1.b_c = 'B')
ELSE
t1.o_b
END)
AS reference_no
FROM e_t_d t1
WHERE t1.b_c IN ('A', 'B') AND t1.d_id IN ('20', '35')
AND ( (t1.a_d >= '1-Apr-2018' AND t1.a_d <= '15-Apr-2018')
OR (t1.a_r >= '1-Apr-2018' AND t1.a_r <= '15-Apr-2018'))
也许我遗漏了一些东西,但是您定义为
的表我尝试获取的结果是以下
报告了具有o_b的行不为空
Hi,不是这样的。也可以是空的。我错误地没有包括在问题中。可能有一些行没有o_b值,但如果它有r_no,则只有它应该检查其他参数。希望现在天气转晴。我使用的结果集非常大,因此我无法在这里复制粘贴所有内容。
b_c e_no r_no o_b
B BC25896 XL25631 X0001
A RT85962 EW89656 L0002
A BF12345 X0001
A BD456321 X0001
A DF85962 X0001
A WS25641 X0001