sql - 我有可能从多个字段中计算记录
问题描述
查询的结果是这样的
SELECT d.icd_code,c.icd_verif2,c.icd_verif3, d.jenis_penyakit , COUNT(*) as totalapsien,e.nama as NamaPoly
FROM t_diagnosadanterapi c, icd d, m_poly e
WHERE c.status = '2' and c.icd_verif = d.icd_code and c.kdpoly = e.kode
GROUP BY c.icd_verif, c.kdpoly, d.jenis_penyakit, e.nama, c.icd_verif2,c.icd_verif3, d.icd_code
ORDER BY c.icd_verif ASC
我想要的是从 icd_code 到 icd_code3 的计数字段作为 jumlahpasien
解决方案
我认为这就是您要实现的目标:
获取
icd_verify
与您的icd_code
.
为了得到这个,我们必须:
1. left join icd to include those with no matching verif. 2. use coalesce to to check values from verif 1 to 3 3. Need to change the way you join the tables, its quiet an old style.
select d.icd_code, c.icd_verif2,c.icd_verif3, d.jenis_penyakit
, count(1) as totalapsien
, sum(case when coalesce(c.icd_verif1, c.icd_verif2, c.icd_verif3, 0) != 0 then 1 else 0 end) as jumlahpasien
, e.nama as NamaPoly
from t_diagnosadanterapi c
left join icd d on c.icd_verif = d.icd_code
inner join m_poly e on c.kdpoly = e.kode
where c.status = '2' and
group by c.icd_verif, c.kdpoly, d.jenis_penyakit, e.nama, c.icd_verif2, c.icd_verif3, d.icd_code
order by c.icd_verif asc
推荐阅读
- java - 从流中获取唯一对象(如果存在)
- powershell - 为 filesystemwatcher 设置路径时出现问题
- node.js - nodejs 的“ng serve”在哪里?其他语言有类似的工具吗?
- macos - AppKit/Cocoa 模拟风格的自定义 NSControl
- python - 石墨烯:枚举参数似乎不起作用
- matlab - 设置 Matlab WindowButtonDownFcn 并保留默认行为
- laravel - 无法开箱即用地运行 Laravel Dusk
- c++ - Qt-移动 QGraphicsItem 会导致工件。留下痕迹
- php - 解码json php时转义斜杠
- ruby-on-rails - 呈现多个相同的单选按钮错误