| |
|
|
| | есть табл с полями: индекс товара/дата поставки/цена поставки. Нужно показать для каждого индекса последнюю дату поставки с ценой этой поставки. Решение: запрос с группировкой по индексу, для даты ставим груп операцию Max и вот вопрос - какую операцию ставить для цены? Можно поставить first - будет одна цена, last - другая цена. Причем это не зависит от того какую операцию ставить для даты. Можно даже вообще дату убрать - результаты не изменяться. Логично предположить, что Access при группировке каким-то образом сортирует записи внутри каждой группы, а затем выбирает max, min, first, last. Но как он сортирует. Как быть уверенным, что если выбрали последнюю дату поставки, цена будет соответствовать именно этой дате, а не другой? | |
| |
| |
| |
|
|
| | >>Как быть уверенным, что если выбрали последнюю дату поставки, цена будет соответствовать именно этой дате, а не другой?
проверить глазами  | |
| |
| |
| |
|
|
| | если непонятен механизм, нельзя гарантировать, что соответствие в первых 10 записях означает соответствие во всех остальных, ведь при группировке теряется взаимозависимость полей, как при обычном наборе записей | |
| |
| |
| |
|
|
| | посмотреть глазами
спецификации SQL и как исполняются стэйтменты, в какой последовательности с какими условиями и проч. | |
| |
| |
| |
|
|
| | сначала нужно найти последнюю дату поставки для каждого товара (сделать подзапрос), а уже потом искать цену за этот день.
Другой вопрос если за день были 2 поставки с разными ценами  | |
| |
| |
| |
|
|
| | так можно, но, наверное, существует возможность сделать это одним запросом | |
| |
| |
| |
|
|
| | ну можно в запросе прописывать подзапрос
хотите по другом - флаг в руки.
Найдете как, обязательно напишите. | |
| |
| |