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

时间:2017-07-18 12:38:57

标签: sql

我有以下查询从数据库中获取一些信息。

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_STATUS的方式保存}字段使用数据库中的相关值进行更新。

因此,在上述查询中,我如何获得已接受和已拒绝RT_STATUS字段的计数。

1 个答案:

答案 0 :(得分:1)

您可以尝试类似

的内容
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