|   |   | 
| 
 | запрос: вывести номенклатуру по дате | ☑ | ||
|---|---|---|---|---|
| 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) Не надо имитации     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |