sql - 选择查询输出不符合预期

标签 sql oracle

我需要一个查询,它会给出像下面给出的结果

createddate  recordcount  acceptdate    submitdate   createddate  
27-MAR-16                   24              36          11
28-MAR-16                   79              207         58

作为引用,我提供了一些查询,我想将它们合并到一个查询中

    select trim(date_created) createddate,count(*) recordcount
    from man
    where status IN ('CREATED')and date_created>sysdate-15  
    group by trim(date_created) ORDER BY     TO_DATE(createddate,'DD/MM/YYYY');

此查询的结果如下。

createddate recordcount
27-MAR-16       11
28-MAR-16       58

第二个查询

select trim(DATE_SUB) submitdate,count(*) recordcount
from man
where status IN ('SUBMITTED')and DATE_SUB>sysdate-15  
group by trim(date_sub) ORDER BY TO_DATE(submitdate,'DD/MM/YYYY');

此查询的结果类似于

submitdate recordcount
27-MAR-16   36
28-MAR-16   207

第三个查询就像 -

select trim(DATE_PUB) acceptdate,count(*) recordcount
from man
where status IN ('ACCEPTED')and DATE_PUB>sysdate-15  
group by trim(DATE_PUB) ORDER BY TO_DATE(acceptdate,'DD/MM/YYYY');

acceptdate  recordcount
 27-MAR-16      24
 28-MAR-16      79

我如何合并这三个查询,以便我可以在单个查询中获得所有查询的计数?这会给我这样的结果

createddate  recordcount  acceptdate    submitdate   createddate  
27-MAR-16                   24              36          11
28-MAR-16                   79              207         58

最佳答案

您的第一个查询 where子句有date,但第二个查询 where子句日期为DATE_P

尝试这样

SELECT Trim(date) createddate,
   COUNT(*) recordcount,
   SUM(case when status = 'A' then 1 else 0 end) as a,
   SUM(case when status = 'S' then 1 else 0 end) as s,
   SUM(case when status = 'C' then 1 else 0 end) as c,
   SUM(case when status = 'R' then 1 else 0 end) as r
FROM man 
WHERE status IN ('A','S','C','R')and date >sysdate-15
GROUP BY trim(date) ORDER BY createddate;

关于sql - 选择查询输出不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36543204/

相关文章:

MySQL 错误 (HY000) : Cannot add foreign key constraint

mysql - 简单的多对多关系

java - 将 OraclePreparedStatement 与 DBCP 连接结合使用

sql - 优化一条 SQL 查询 : call a function or do a join?

mysql - 避免查询中出现重复并将所有重复行设为空白

mysql - 在同一地区找到至少 2 位顾客,他们至少喜欢一种用 SQL 出售的比萨饼

mysql - 如果到达最后一行,则从第一行返回

php - jQuery Ajax 一旦没有更多结果

php - ORA-06550 必须声明标识符

sql - PL SQL Oracle PLS-00103 : Encountered the symbol “CREATE”