【发布时间】:2014-02-19 16:16:32
【问题描述】:
您好,我使用左连接从各种表中选择了以下列,我得到以下结果。
Box_ID BOX_NAME VALUE PROM_EFFDATE PROM_CLOSEDATE
11 JE 1 115 2/27/2014
11 JE 2 80 2/27/2014 3/6/2014
11 JE 4 60 2/17/2014
11 JE 3
如果 PROM_CLOSEDATE 有一些值,那么等效的 BOX_NAME(JE2) 应该再次显示为空值和空 effdate。我们可以为不同的周期时间输入任何其他不同的值。 这是实际的要求。结果应该是:
Box_ID BOX_NAME VALUE PROM_EFFDATE PROM_CLOSEDATE
11 JE 1 115 2/27/2014
11 JE 2 80 2/27/2014 3/6/2014
11 JE 2
11 JE 4 60 2/17/2014
11 JE 3
这样我必须得到价值。
这里我已经按照san的指导使用了,
SELECT Box_ID,BOX_NAME, VALUE, PROM_EFFDATE, PROM_CLOSEDATE
FROM tab
UNION
SELECT Box_ID,BOX_NAME, NULL, NULL, NULL
FROM tab
WHERE PROM_CLOSEDATE IS NOT NULL
order by 2
但我想要更精确的结果。当我为 JE2(2nd ) Occurance 输入值和生效日期(不提供 CLOSE_DATE)时,我得到以下输出。
Box_ID BOX_NAME VALUE PROM_EFFDATE PROM_CLOSEDATE
11 JE 1 115 2/27/2014
11 JE 2 80 2/27/2014 3/6/2014
11 JE 2 90 4/6/2014
11 JE 2
11 JE 4 60 2/17/2014
11 JE 3
但实际上,当 BOX_NAME(此处为 JE2)有没有 Closedate 的记录时,我不需要具有 NULL 值、NULL 生效日期、NULL closeate 的记录。 我只需要当它有 closeate 的记录时才需要不是 NULL 的情况。即使它有带有值、生效日期和没有关闭日期的记录,也不应该出现空记录。 这是我的要求。请帮我解答。
【问题讨论】:
标签: oracle