我有以下查询从数据库中获取一些信息。
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
字段的计数。
答案 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