Помогите плз с запросом новичку!!!

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
rago
Сообщения: 1
Зарегистрирован: 09 дек 2009, 11:47

Помогите плз с запросом новичку!!!

Сообщение rago » 09 дек 2009, 12:03

Есть такой запрос, который получает след таблицу НАЗВАНИЕ ГРУППЫ ТОВАРОВ | КОД ГРУППЫ ТОВАРОВ | СУММА ПРОДАЖИ

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

SELECT 
  SHGROUPS.NAME,
  SHGROUPS.CODE,
  SUM(PRODTOV.QUANT * PRODTOV.PRICE) AS SUMPROD
FROM
  PRODTOV
  RIGHT OUTER JOIN GOODS ON (PRODTOV.CODE = GOODS.CODE)
  INNER JOIN SHGROUPS ON (GOODS."GROUP" = SHGROUPS.CODE)
GROUP BY
  SHGROUPS.NAME,
  SHGROUPS.CODE
Он работает замечательно. Получает ВСЕ группы (даже те, товары из которых не были проданы)
НО! Ежели я хочу выбрать данные о продажах за период

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

SELECT 
  SHGROUPS.NAME,
  SHGROUPS.CODE,
  SUM(PRODTOV.QUANT * PRODTOV.PRICE) AS SUMPROD
FROM
  PRODTOV
  RIGHT OUTER JOIN GOODS ON (PRODTOV.CODE = GOODS.CODE)
  INNER JOIN SHGROUPS ON (GOODS."GROUP" = SHGROUPS.CODE)
[b]WHERE
  PRODTOV.DATETIME BETWEEN '01.12.2009 00:00:01' AND '01.12.2009  23:59:59'[/b]
GROUP BY
  SHGROUPS.NAME,
  SHGROUPS.CODE
то у меня получается результирующая таблица, в которую включены группы только тех товаров, которые были проданы в этот период

Подскажите, пожалста, что надо изменить в запросе :?:

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Помогите плз с запросом новичку!!!

Сообщение Dimitry Sibiryakov » 09 дек 2009, 14:22

Перенести условие из WHERE в JOIN и прочитать статью про джоины на этом сайте. Нет, наоборот - сначала прочитать, а потом переносить.


Ответить