Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос о вложенном SQL [D4, dBase, FoxPro, Paradox]


Duke2 ©   (2002-06-06 06:53:00) 

Уважаемые мастера ! Вопрос о вложенном SQL
Есть таблица Должности со всеми видами должностей, Есть таблица Сотрудники
Нужно подсчитать, сколько всего есть сотрудников по каждой должности:

Должность Сотрудников
--------------------------------------------
Директор 1
Кассир 2
Банкир 10 ...

Для этого пишу запрос типа
SELECT Должность,
(SELECT Count(*) FROM Сотрудники WHERE Сотрудники.Должность = Должности.Должность) as Pole
FROM Должности

этот запрос всегда возвращает Pole=0, а если сделать внутренний подзапрос определенным
SELECT Должность,
(SELECT Count(*) FROM Сотрудники WHERE Сотрудники.Должность = "Директор") as Pole
FROM Должности
то правильно подсчитает количество директоров. В чем дело? SQL на это не способен ?
Можно конечно пробежаться по обеим таблицам в цикле, как в старом добром ДОСе,
но хотелось бы узнать как такие проблемы решают крутые чуваки.
Спасибо.


Bcxv/B   (2002-06-06 17:43:00) [1]

cc


fool   (2002-06-06 10:09:00) [2]

Вроде правильно у тебя, чувак, я тут счас написал (MSSQL) так нормально работает, хотя под dBase, FoxPro, Paradox - не уверен.

select land_name,
(select count(*) from region where land.land_ID=region.land_ID) as "count"
from land


Johnmen   (2002-06-06 09:10:00) [3]

SELECT Должность, Count(*) FROM Должности
JOIN Сотрудники ON Сотрудники.IDдолжности=Должности.ID
GROUP BY Должность

или

SELECT Должность, Count(*) FROM Должности,Сотрудники
WHERE Сотрудники.IDдолжности=Должности.ID
GROUP BY Должность


VAleksey   (2002-06-06 08:53:00) [4]

:)


spb   (2002-06-06 08:37:00) [5]

order by - это бантик для украшения.


VAleksey   (2002-06-06 08:31:00) [6]

order by
не обязательно


spb   (2002-06-06 07:32:00) [7]

Можно обойтись без вложенного запроса:

select ДОЛЖНОСТЬ, count(ДОЛЖНОСТЬ) from СОТРУДНИКИ
group by ДОЛЖНОСТЬ
order by ДОЛЖНОСТЬ


Наверх

Титульная страница Поиск, карта сайта Написать письмо