Подсчитайте строку с месяцем и другим условием

#mysql #codeigniter

#mysql #codeigniter

Вопрос:

Я знаю, что мы можем легко подсчитывать строки, но у меня есть некоторые проблемы с этим.

это моя таблица

Я пытался подсчитать строку, где значение не равно ‘-‘ в каждом месяце. Этот запрос ниже подсчитывает всю строку за все месяцы.

 SELECT MONTHNAME(tanggal) as bulan,
(SELECT COUNT(iad) FROM triwulan WHERE iad!='-') as iadp,
(SELECT COUNT(isk) FROM triwulan WHERE isk!='-') as isk,
(SELECT COUNT(vap) FROM triwulan WHERE vap!='-') as vap,
(SELECT COUNT(hap) FROM triwulan WHERE hap!='-') as hap,
(SELECT COUNT(plebitis) FROM triwulan WHERE plebitis!='tidak') as plebitis
FROM `triwulan`
group by bulan
  

Я был бы признателен за любую помощь, спасибо..

Комментарии:

1. Такого рода проблема является симптомом плохого дизайна. Рассмотрите возможность наличия одного infection_type столбца со строкой для каждого типа заражения.

2. Кроме того, если кто-то восстановится с isk, но все еще имеет vap, как бы вы вообще записали это с текущей схемой?

Ответ №1:

В ответ на комментарии пример нормализованного дизайна может выглядеть следующим образом:

 examination 
examination_id tanggal    
             1 2019-02-01 
             2 2019-02-02 
             3 2019-02-03 
             4 2019-03-01 

examination_detail
examination_id infection_type plebitis
             1 iad            iya
             1 hap            iya
             2 hap            tidak
             3 isk            iya
             3 vap            iya
             4 isk            tidak
             4 vap            tidak
  

Вам нужно было бы решить, является ли plebitis более подходящим местом для таблицы examination или таблицы detail.