Как составить запрос
От: nen777w  
Дата: 20.02.08 16:40
Оценка:
Есть таблица УСТРОЙСТВА, есть таблица ПРОШИВКИ, есть таблица БАГИ, между ними есть связывающие таблицы.
Между таблицами УСТРОЙСТВА и ПРОШИВКИ есть связывающая таблица УСТРОЙСТВА_ИМЕЮЩИЕ_ПРОШИВКИ т.е. одно устройство может иметь много прошивок.
Между таблицами ПРОШИВКИ и БАГИ есть связывающая таблица ПРОШИВКИ_ИМЕЮЩИЕ_БАГИ т.е. одна прошивка может иметь много багов.
Но БАГИ у нас не простые. Баги могут быть баги а могут быть примечания. За это отвечает специальный флаг is_bug в таблице багов.
Теперь, надо сделать такое:
Надо подсчитать сколько у нас для каждой прошивки конкретного устройства есть багов а сколько примечаний.
У меня запрос такой:


select distinct

      t_device_firmware.firmware_version
      , COUNT( t_bug_list.is_bug )
from
      t_bug_list
     ,t_device_firmware
     ,r_firmware_has_bug_list
     ,r_device_has_firmware
where
     (
      r_device_has_firmware.id_device = 4213 /*номер устройства*/
      AND
      r_device_has_firmware.id_device_firmware = t_device_firmware.id_device_firmware
      AND
      r_firmware_has_bug_list.id_firmware = t_device_firmware.id_device_firmware
      AND
      t_bug_list.id_bug = r_firmware_has_bug_list.id_bug
     )
     AND
     (
      t_bug_list.is_bug = 1
      OR
      t_bug_list.is_bug = 0
     )
group by t_bug_list.is_bug


но результат имеет вид

имя_прошивки число_багов
имя_прошивки число_примечений

а хотелось бы что бы имя прошивки не повторялось а резуль тат был такой
имя_прошивки число багов число_примечаний
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.