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