我有两个选择语句,我想生成两列,每个列并排使用一个选择语句中的这两个选择语句
查询1
SELECT DISTINCT CASE_ID from t1 WHERE MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-56 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-49 CASE_ID 12 13 14 15 17
查询2
SELECT DISTINCT CASE_ID from t1 WHERE MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-49 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-42 CASE_ID 45 98 67 90 76 82 61
最终输出应类似于:
C1 C2 12 45 13 98 14 67 15 90 17 76 82 61
谁能告诉我该怎么做?
谢谢你。
更新
我从答案中尝试过的查询之一:
SELECT DISTINCT case when MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 49 then CASE_ID end as c1, DISTINCT case when MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-49 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-42 then CASE_ID end as c2 from t1 WHERE MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 42
我得到的是ORA-00936:缺少表达。谁能告诉我问题所在?
谢谢。
您正在寻找经过过滤的聚合:
SELECT COUNT(DISTINCT case when MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 49 then CASE_ID end) as c1, COUNT(DISTINCT case when MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-49 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-42 then CASE_ID end) as c2 from t1 WHERE MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56 AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 42
请注意,该WHERE子句现在需要覆盖两个间隔。
WHERE