Не выполняется сложный(для меня) запрос...

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Здравсвуйте, заранее благодарю за помощь!

Вот мой запрос:
SELECT B_ID ,(SELECT SUM(ZD_CNT) FROM Zakaz_M, Zakaz_D Where (ZM_ID=ZD_ZID) AND (ZM_DATA_SOZD BETWEEN "01.01.2004" AND "31.12.2004") AND (ZD_BID=Book.B_ID))
FROM Book;

где Book-таблица книг
Zakaz_M-главная таблица заказов
Zakaz_d-детальная таблица заказов

Суть запроса:
Мне необходимо получить колличество заказанных книг, по каждому наименованию, за отчётный период.

Если выполнить SELECT SUM(ZD_CNT) FROM Zakaz_M, Zakaz_D Where (ZM_ID=ZD_ZID) AND (ZM_DATA_SOZD BETWEEN "01.01.2004" AND "31.12.2004") AND (ZD_BID=9)
то выводится колличество заказанных книг с кодом девять,
а если выполнить первый запрос то колонка с колличеством пустая :(

Подскажите что делать?

PS Paradox>BDE>TQuery
Запрос выполняю в SQL Explorer
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

GOS, есть такой предикат group by называется.

Код: Выделить всё

Select SUM(ZD_CNT), B_ID  from  ZAKAZ where ZM_DATA_SOZD BETWEEN .. AND .. and ZM_ID = ZD_ID group by B_ID
Даже самый дурацкий замысел можно воплотить мастерски
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Спасибо, всё заработало :)
Ответить