|
запрос: вывести номенклатуру по дате | ☑ | ||
---|---|---|---|---|
0
vux13
18.07.24
✎
17:50
|
нужно из таблицы получить цену номенклатуры на ДатаЗаказа
таблица: Номенклатура |Цена | Дата ----------------------------------------- Гидроизоляция | 352| 23.11.2021 10:14:13 Гидроизоляция | 560| 03.05.2022 16:30:06 Гидроизоляция | 478| 19.04.2023 12:00:00 Грунтовка | 900| 04.04.2022 16:33:34 Грунтовка | 1084| 21.07.2021 0:00:00 Грунтовка | 1157| 25.02.2022 23:54:53 Грунтовка | 1199| 19.04.2023 0:00:00 Светильник | 1361| 15.06.2022 0:00:00 Светильник | 1148| 17.11.2021 17:40:15 например на дату 15.06.2022: Гидроизоляция | 560| 03.05.2022 16:30:06 Грунтовка | 900| 04.04.2022 16:33:34 Светильник | 1361| 15.06.2022 0:00:00 делаю такой запрос, но с полем "Цена" не работает но нужно с ценой ВЫБРАТЬ Таблица.Номенклатура КАК Номенклатура, Таблица.Цена КАК Цена, МАКСИМУМ(Таблица.Дата) КАК Дата ИЗ Таблица ГДЕ Таблица.Дата <= &ДатаЗаказа СГРУППИРОВАТЬ ПО Таблица.Номенклатура, Таблица.Цена |
|||
1
Ёпрст
18.07.24
✎
17:56
|
(0) в начале номенклатура и максимум дата, во втором уже запросе фильтр по первому внутренним соединением по дате и номенклатуре
|
|||
2
vux13
18.07.24
✎
18:24
|
(1) вот так правильно понял ?
ВЫБРАТЬ Таблица.Номенклатура КАК Номенклатура, МАКСИМУМ(Таблица.Дата) КАК Дата ПОМЕСТИТЬ ВТ ИЗ Таблица ГДЕ Таблица.Дата <= &ДатаЗаказа СГРУППИРОВАТЬ ПО Таблица.Номенклатура ; ВЫБРАТЬ Таблица.Номенклатура КАК Номенклатура, Таблица.Цена КАК Цена, Таблица.Дата КАК Дата ИЗ Таблица ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ ПО Таблица.Номенклатура = ВТ.Номенклатура И Таблица.Дата = ВТ.Дата |
|||
3
rphosts
18.07.24
✎
18:24
|
(2) +1
|
|||
4
Ёпрст
18.07.24
✎
18:25
|
(2) ага..ну, и если вдруг выйдет что в одной дате есть 2 разные ценыдля одной номенклатуры, можно во втором запросе брать еще максимум цены.
|
|||
5
vux13
18.07.24
✎
18:28
|
(4) спасибо
а в теории соединения по не индексированным полям может тормозить запрос если много записей будет да ? |
|||
6
vux13
18.07.24
✎
18:29
|
(3) 👍
|
|||
7
rphosts
18.07.24
✎
18:37
|
(5) молодец! Всё так и есть: много записей - индексируй. Не уверен на 100% что в будущем записей не станет много - индексируй.
С другой стороны если ты знаешь заранее список номенклатур по которым требуется получить даты - это позволяет резко ограничить массив обрабатываемых данных в запросе |
|||
8
vux13
18.07.24
✎
21:22
|
(7) 👍👍👍
|
|||
9
Волшебник
18.07.24
✎
22:12
|
(8) Не надо имитации
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |