Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];

Вниз

Вопрос о вложенном SQL   Найти похожие ветки 

 
Duke2   (2002-06-06 06:53) [0]

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

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

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

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


 
spb   (2002-06-06 07:32) [1]

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

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


 
VAleksey   (2002-06-06 08:31) [2]

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


 
spb   (2002-06-06 08:37) [3]

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


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

:)


 
Johnmen   (2002-06-06 09:10) [5]

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

или

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



 
fool   (2002-06-06 10:09) [6]

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

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


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

cc



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
3-887
maxim2
2002-06-06 21:58
2002.07.01
Как закрыть MDIchild форму


1-1063
irmantukas
2002-06-19 02:02
2002.07.01
Помогите пожалуйста! Как узнать все про дате


1-959
finger
2002-06-19 16:41
2002.07.01
Стыковка


1-1019
Delph
2002-06-18 10:16
2002.07.01
Вопрос по DLL


1-979
chips
2002-06-20 11:14
2002.07.01
работа с файлами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский