|
MySQL.RU - Webboard
Вернуться
Нужен совет для правильно составления запроса (Вячеслав) 26/09/2007 - 11:14:59
Re: Нужен совет для правильно составления запроса (bac) 26/09/2007 - 13:29:38
Re: Нужен совет для правильно составления запроса (Вячеслав) 26/09/2007 - 13:45:24
Re: Нужен совет для правильно составления запроса (Вячеслав) 26/09/2007 - 16:09:03
From: Вячеслав - 26/09/2007 - 11:14:59
Subject:Нужен совет для правильно составления запроса
-----------------
Предположим есть таблица в MySQL:
sklad_id, tovar_id, data, ostatok
В эту таблицу вносятся остатки только в том случае, если в конкретный день на конкретном складе по конкретному товару было движение.
Т.е. например остаток на "колбасу" на "первом складе" есть за 1 и 5 января, потому что за период с 2 по 4 колбасу на первый склад не привозили и не увозили, таким образом информация не дублируется.
И вот из это таблицы нужно получить остатки всех товаров по всем складам на определенное число. Т.е. нужно получить результат, сгруппированный по складу (skald_id) и товару (tovar_id) с максимальной датой (data), которая не больше, например 4 января (т.е. получить остаток на 4 января).
Я написал следующий запрос, ожидая получить ошибку:
SELECT max(data), sklad_id, tovar_id, ostatok
FROM ostatki_na_skladah
WHERE data<='2007-01-04'
GROUP BY sklad_id, tovar_id
...и он нормально отработал
Но насколько мне известно, в выбираемые поля запросов с группировками можно подставлять только те поля, по которым сделана группировка, статистические функции и константы. Вот и меня это и беспокоит. Мне может кто-то объяснить данный феномен или подсказать решение задачи без нарушений принципов построения запросов в реляционных БД?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
32229
|
|