【发布时间】:2018-12-14 07:15:34
【问题描述】:
我有查询 1,它返回一周中从星期六开始到星期五结束的 7 个日期。
SELECT TRUNC(to_date('08-Jul-2018', 'dd-Mon-yyyy'), 'IW')
+ Level - (1+ TRUNC(to_date('08-Jul-2018', 'dd-Mon-yyyy'), 'IW')
- TRUNC(to_date('08-Jul-2018', 'dd-Mon-yyyy'), 'IW'))
FROM dual
CONNECT BY level <= 8; --great
查询二是一个透视查询,现在可以正常使用硬编码的日期。我怎样才能使枢轴(sum(counts)从insrt in(.....))变成动态的?您现在看到它是硬编码的。谢谢
WITH tbl AS
( SELECT DISTINCT rowlabel,
TO_CHAR(insrt ,'mm-dd-yyyy'),
counts
FROM tbl
WHERE TRUNC(insrt) >= to_date('01-01-1900', 'MM-DD-YYYY')
AND TRUNC(insrt) <= to_date('12-31-4000', 'MM-DD-YYYY')
)
SELECT *
FROM tbl pivot (
SUM(counts) FOR insrt IN ('06-30-2018','07-01-2018','07-02-2018','07-03-2018',
'07-04-2018','07-05-2018','07-06-2018')
) ;
【问题讨论】:
-
查询 1 和 2 之间似乎没有相关性,请多介绍一下表
tbl(结构和样本值)。 -
您能发布您拥有的数据以及您希望输出的样子吗?
-
您好,感谢您的回复和热心帮助!
-
我重新发布我的问题,希望它可能更清楚一点。
标签: sql oracle date dynamic pivot