#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.