Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于开始日期和结束日期的动态oracle sql查询_Sql_Oracle - Fatal编程技术网

基于开始日期和结束日期的动态oracle sql查询

基于开始日期和结束日期的动态oracle sql查询,sql,oracle,Sql,Oracle,我的桌子: 根据开始和结束日期,我需要得到如下输出: 假设开始日期为2020年9月1日,结束日期为2020年9月9日(动态提供)。 根据上述日期,日期应为列名,id应为相应列下的数据。 若id在各自的日期不存在,则在输入表中它应为空 我想不出这个问题的答案。请,任何人都建议我以书面形式提出上述问题 提前感谢。您可以尝试以下方法: SELECT * FROM ( SELECT name, dat, id FROM tbl ) PIVOT ( max(id) FOR dat IN

我的桌子:

根据开始和结束日期,我需要得到如下输出:

假设开始日期为2020年9月1日,结束日期为2020年9月9日(动态提供)。 根据上述日期,日期应为列名,id应为相应列下的数据。 若id在各自的日期不存在,则在输入表中它应为空

我想不出这个问题的答案。请,任何人都建议我以书面形式提出上述问题

提前感谢。

您可以尝试以下方法:

SELECT * FROM
(
  SELECT name, dat, id
  FROM tbl
)
PIVOT
(
  max(id)
  FOR dat IN ('01-Sep-2020', '02-Sep-2020', '03-Sep-2020', '04-Sep-2020', '05-Sep-2020', '06-Sep-2020', '07-Sep-2020')
)
ORDER BY name;


感谢您的查询…如果我有两个同名的不同ID…在这种情况下max()将无法工作。我需要检索两个ID..我有另一个建议,不确定您是否喜欢: