代码之家  ›  专栏  ›  技术社区  ›  WAQ

从多个表中获取汇总信息的查询

sql
  •  0
  • WAQ  · 技术社区  · 7 年前

    select a.PIPE_SYS, c.WELD_TYPE, c.RT, sum(a.W_C) welded, 
    count(d.RT_CMP_DATE) Tested, count(a.RT_STATUS) Accepted
    from Weld_master a, Weld_names b, NDT_PER_CATEGORY_ c, Nd_Test d 
    where a.WELD_NAME = b.WELD_NAME and b.TYPE = c.WELD_TYPE and a.NDT_CATEGORY = 
    c.CATEGORY  and a.project_no = d.proj_no and a.dwg_no = d.dwg_no and 
    a.Spool_No = d.Spool_No and a.weld_no = d.weld_no group by a.PIPE_SYS, c.rt, 
    c.WELD_TYPE;
    

    上面给出了我期望的正确结果,除了 领域因为,我数据库中的数据是以默认方式保存的 RT_STATUS RT status 然后接受或拒绝焊接 RT_状态 字段用数据库中的相关值更新。

    所以,在上面的查询中,我如何获得接受和拒绝的计数 RT_状态 领域

    1 回复  |  直到 7 年前
        1
  •  1
  •   Helen Gore    7 年前

    你可以试试这样的

    sum(case when a.RT_STATUS = 'Accepted' then 1 else 0 end) AS AcceptedCount,
    sum(case when a.RT_STATUS = 'Rejected' then 1 else 0 end) AS RejectedCount