我有两张桌子
价格 -------- 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
但问题是我无法获得特价表值和键加入。请帮忙。