【发布时间】:2016-04-20 08:12:31
【问题描述】:
我有两张桌子
价格 -------- id 值键 sku1 r1 12 sku1 r2 13 sku2 r1 12 sku3 r1 14 特惠价 ----- id 值 键 开始日期 结束日期 sku2 r2 13 20-3 月 20-5 月 sku3 r1 15 20-3 月 20-5 月我正在尝试使用 LISTAGG 函数并带来如下输出:
输出 ------ 价值 sku1 r1:12,r2:13 sku2 r2:13 sku3 r1:15如果 specialprice 表中有一个条目并且 sysdate 介于 startdate 和 enddate 之间,那么我需要考虑否则我需要从价格表中获取价值。 在价格表中,一个 id 可能有两个条目,我需要列出这两个记录。 specialprice 表可能没有价格表中的 id 条目。所以我正在使用 FULL OUTER JOIN
我构造的PFB查询:
SELECT
a.id,
listagg (a.value | | ':' | | nvl (a.key, ' '), ',') WITHIN GROUP (ORDER BY a.value) AS price
FROM price a
FULL OUTER JOIN specialprice b
ON(b.id = a.id)
WHERE sysdate between b.startdate and b.enddate
GROUP BY a.id
但问题是我无法获得特价表值和键加入。 请帮忙。
【问题讨论】: