Помогите сделать запрос по регистру продаж и цен

1. user1629558 09.02.25 14:26 Сейчас в теме
Есть регистр продаж и отдельная цена на дату продажи в регистре цен. Нужно сделать запрос, где бы строчка с продажей объединилась с нужной ценой (и потом сумма продажи пересчиталась по этой цене). Цена должна быть именно на дату продажи из строчки, а не заданной датой в настройке запроса.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107184 09.02.25 14:57 Сейчас в теме
3. Said-We 09.02.25 17:00 Сейчас в теме
(1) Можно так. На 1С данный запрос переводится.
По сути на каждую строку продажи прям берешь цену из таблицы цен. Прям как в формулировке задачи.
https://onecompiler.com/sqlite/438k59waa
В начале данные, а сам запрос:
SEL ECT t1.*, (SELECT t.c fr om vt_price as t WHERE t1.p = t.p AND t1.d>=t.d ORDER by t.d DESC LIMIT 1 ) as cena
			,t1.kol * (SELECT t.c fr om vt_price as t WH ERE t1.p = t.p AND t1.d>=t.d ORDER by t.d DESC LIM IT 1 ) as summa
FR OM vt_prodagi as t1
Остается только проверку на NULL добавить и усё. :-)
Прикрепленные файлы:
4. gybson 09.02.25 18:52 Сейчас в теме
Deepseek выдал такой запрос

ВЫБРАТЬ
    Продажи.Период КАК ДатаПродажи,
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Количество КАК Количество,
    ЕСТЬNULL(Цены.Цена, 0) КАК Цена
ИЗ
    РегистрНакопления.Продажи КАК Продажи
    ЛЕВОЕ СОЕДИНЕНИЕ (
        ВЫБРАТЬ
            Цены.Номенклатура КАК Номенклатура,
            Цены.Период КАК ДатаЦены,
            Цены.Цена КАК Цена
        ИЗ
            РегистрСведений.Цены КАК Цены
    ) КАК Цены
    ПО (Цены.Номенклатура = Продажи.Номенклатура)
        И (Цены.ДатаЦены = (
            ВЫБРАТЬ
                МАКСИМУМ(ПодЦены.Период)
            ИЗ
                РегистрСведений.Цены КАК ПодЦены
            ГДЕ
                ПодЦены.Номенклатура = Продажи.Номенклатура
                И ПодЦены.Период <= Продажи.Период
        ))
Показать
5. Said-We 10.02.25 01:28 Сейчас в теме
(4) Неее...
Если прям как автор спросить, то он выдаст полную ерунду... :-)
Что бы получить правильный ответ - необходимо правильно задать вопрос.
Прикрепленные файлы:
10. gybson 10.02.25 11:13 Сейчас в теме
(5) Суть в том, что от него можно добиться больше толка и быстрее. Китайский товарищ, как ни странно, подкован в 1С
6. Said-We 10.02.25 01:32 Сейчас в теме
Если уточнить, то даёт сразу два результата....
Первый, что и выше, но это не единственный, можно не через максимум, а через первые 1 и сортировку.
Второй вариант с помощью оконной функции и опять мимо. :-)

Если чуть поправить, то выдает похожее не правду.
Ко всем вариантам дает пояснения и условия когда будет или не будет получен результат. Что учитывает и что не учитывает тот или иной вариант.
Если даже не знать правильный ответ, но внимательно читать пояснения и поправлять условия задачи, то можно быстро добиться требуемого результата в простых задачах.
Прикрепленные файлы:
7. user1629558 10.02.25 07:42 Сейчас в теме
Не работает ничего, нужен рабочий вариант, проверенный
8. user1936660 10.02.25 08:20 Сейчас в теме
(7)
нужен
Ты совсем самоустранился, сидишь ждешь, пока тебе напишут?
9. user2107184 10.02.25 08:25 Сейчас в теме
(8)
Ты совсем самоустранился
Нельзя устраниться от того, к чему не прикасался...
11. Said-We 10.02.25 11:53 Сейчас в теме
(10) Это ИИ. Какая разница в чем? Какая БД анализируется - в том и подкован.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот