Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > совсем простой запрос не получается


Автор: katka 28.2.2006, 10:54
MS SQL Server 2000 sp 3, ODBC, php

есть таблички

documents(id, number, doctype) — документы
doctypes(id, name) — типы документов (напр., Приказ, Распоряжение и т п)

documents.doctype - внешний ключ (или как это называется).. равен id-у из doctypes

мне нужно вывести список всех типов документов, и для каждого типа вывести количество его документов. при этом если таких документов нет, надо вывести ноль. например вот так:
Приказ (18)
Распоряжение (0)
Устав (1)

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

Автор: Bose 28.2.2006, 11:00
katka

Код

SELECT doctypes.name, count (documents.number) as DocCount
from doctypes Left Join  documents on .....
GROUP BY doctypes.name

Автор: LSD 28.2.2006, 11:09
Код
select dt.name, count(dc.id)
  from doctypes dt
  left join documents dc on dc.doctype = dt.id
  group by dt.name

Автор: katka 28.2.2006, 11:14
Bose, спасибо, работает

Автор: chief39 28.2.2006, 11:15
Код

select doctypes.id, doctypes.name ,count(documents.id)
from documents  right outer join doctypes on documents.doctype = doctypes.id
group by doctypes.id, doctypes.name


Добавлено @ 11:16
Навалили smile))))

Автор: katka 28.2.2006, 11:16
люди! спасибо! 8) да, джойн воистину работает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)