|
|
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
Извините за чайнический вопрос: Есть таблица с тремя полями: Дата прихода ТМЦ, Склад, Номер ТМЦ Нужно получить информацию о дате последнего прихода ТМЦ на склад. То есть нужно выбрать максимальную дату по ТМЦ и складу. Вариант Select Max(Data), Sklad, N_TMC ... Group by Sklad, N_TMC; Не подходит, поскольку на разных складах могут храниться одинаковые ТМЦ, а такая группировка одинаковые ТМЦ исключает. Подскажите, пожалуйста, как правильно сгруппировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 11:09 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
Я не знаю, что такое ТМЦ и почему такая группировка одинаковые ТМЦ исключает, но мне кажется, что в этом селекте все правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 11:16 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
Если смысл в том, чтобы узнать дату последнюю дату прихода конкретной ТМЦ на Любой склад, убрать код склада из условия в группировке? Select Max(Data), Sklad, N_TMC ... Group by N_TMC; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 11:19 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
ТМЦ - суть товарно-материальная ценность, то бишь нечто хранящееся на складе, имеющее ценность и свой уникальный номер (который и хранится в этой таблице). На каждом из складов ТМЦ повторяются только по дате поступления, а на разных складах могут храниться одинаковые. Нужно выбрать последнюю дату поступления каждой ТМЦ на каждый склад. Смысл убрать поле из группировки есть только для склада, то есть при прочих равных написать Group by Sklad; , однако при этом ацесс начинает ругаться, поскольку группировка некорректна для поля N_TMC. Вылезает: "Попытка выполнить запрос, который не включает указанное выражение 'N_TMC' как часть статистической функции или группы." А как сделать, чтобы он так не ругался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 12:54 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
Одно из двух. Либо груп бай ТМЦ, либо вообще это поле убрать. Ну, или какой-нибудь First(ТМЦ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 12:58 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
А что есть first() (извините, не знаю где мануал посмотреть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 13:01 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
Если есть группа записей, в которой некоторое поле через всю группу имеет одинаковое значение (т.е. группировка сделана по этому полю), то спрашивается: а для остальных полей какое значение показывать? Пример: A B 1 2 1 8 1 9 4 2 4 3 4 4 4 5 Если сделать group by A, то будет нечто такое: A B 1 ? 4 ? Все эти First, Last, Max, Sum и т.д. предназначены для того, чтобы поставить что-то на место вопросительного знака, т.е. как-то получить значение на основании тех данных, которые есть в группе. Например: Если поставить Min: A B 1 2 4 2 Если поставить Max: A B 1 9 4 5 Если поставить Sum: A B 1 19 4 14 First и Last использовать не рекомендуется, если у исходного запроса не задана сортировка. Выбор зависит от логики задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 13:08 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
Уважаемый, Владимир Саныч (и остальные товариши)! Ишак я паршивый, смиренно прошу вашего прощения, поскольку мой же собственный запрос (первоначальный вариант) действительно все правильно выбирает! Глубокий экскъюз за украденное время ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 13:13 |
|
||
|
Как правильно сгруппировать?
|
|||
|---|---|---|---|
|
#18+
Yur Врешь, работает вот это, SELECT Prihod.Склад, Max(Prihod.Дата) AS Max_Дата FROM Prihod GROUP BY Prihod.Склад; а с кодом ТМЦ не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 13:19 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1761&tid=1679872]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 340ms |

| 0 / 0 |
