Имя: Пароль:
1C
 
Вопросик по запросику
0 altfin
 
25.03.25
17:05
ВЫБРАТЬ
ДатаВремя(2025,01,01),
10
ПОМЕСТИТЬ ВТ_ОтгрузитьПлан

Объединить ВСЕ
ВЫБРАТЬ
ДатаВремя(2025,01,02),
20
;

///////////////////////////////////////
ВЫБРАТЬ
2,
9,
7
ПОМЕСТИТЬ ВТ_Отгружено;

Хочу получить такой результат (типа ВТ_ОсталосьОтгрузить):
01.01.2025   0
02.01.2025   12

В запросе как это сделать?
1 Мультук
 
гуру
25.03.25
17:14
(0)

Откуда нам знать быть может вот это ВТ_Отгружено
вообще отгружено в 2024 году, даты где ?
2 Галахад
 
гуру
25.03.25
17:15
Где даты, Билли.
3 altfin
 
25.03.25
17:17
(1) даты могут быть разные, может отгрузили например:
31.12.24 2
03.01.25 9
05.01.25 7
4 Галахад
 
гуру
25.03.25
17:23
Похоже в запросе не хватает измерения "товар"
5 altfin
 
25.03.25
17:26
(5) можно и товар добавить, непринципиально это
6 timurhv
 
25.03.25
17:27
Ищите "Срез последних на каждую дату", примеров тьма.
7 Fedor-1971
 
25.03.25
17:41
(6) У ТС не срез последних, он хочет запросом распределить ВТ_Отгружено (18 неких кракозябр) на месяца из ВТ_ОтгрузитьПлан закрывая планы последовательно

(3) Сделай в запросе для ВТ_Отгружено: НачалоПериода(ДТ, Месяц), Сумма(Количество) как КоличествоОтгружено и Левым соединением цепляй по дате к ВТ_..План.
Идея такая - Делаем одинаковые даты в обеих ВТ и соединяем по оным
8 altfin
 
25.03.25
17:46
(7) "Делаем одинаковые даты в обеих ВТ" - у меня не тот случай, одинаковые не всегда будут даты.
9 PR
 
25.03.25
17:58
(0) В запросе не получится сделать нарастающий итог
Не, с помощью колдовских извращений можно, но вообще не стоит, факт
10 Fedor-1971
 
25.03.25
18:11
(8) тогда код тебе в помощь
11 craxx
 
25.03.25
20:29
(9) получится.
12 trad
 
26.03.25
14:29
(0) ты точно хотел тут три колонки?
ВЫБРАТЬ
2,
9,
7
ПОМЕСТИТЬ ВТ_Отгружено;

или все же нужно было объединить три значения в одну колонку?
13 trad
 
26.03.25
15:10
ВЫБРАТЬ
    ДАТАВРЕМЯ(2025, 1, 1) КАК Поле1,
    10 КАК Поле2
ПОМЕСТИТЬ ВТ_ОтгрузитьПлан

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ДАТАВРЕМЯ(2025, 1, 2),
    20
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    2 КАК Поле1
ПОМЕСТИТЬ ВТ_Отгружено

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    9

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    7
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    План.Поле1 КАК Поле1,
    МАКСИМУМ(План.Поле2) КАК Поле2,
    ЕСТЬNULL(СУММА(ПланНакоп.Поле2), 0) КАК ПланНакоп
ПОМЕСТИТЬ ВТ_План
ИЗ
    ВТ_ОтгрузитьПлан КАК План
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтгрузитьПлан КАК ПланНакоп
        ПО План.Поле1 > ПланНакоп.Поле1

СГРУППИРОВАТЬ ПО
    План.Поле1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(Отгружено.Поле1) КАК Поле1
ПОМЕСТИТЬ ВТ_ОтгруженоИт
ИЗ
    ВТ_Отгружено КАК Отгружено
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    План.Поле1 КАК Поле1,
    План.Поле2 КАК Поле2,
    План.ПланНакоп КАК ПланНакоп,
    План.Поле2 - Отгружено.Поле1 + План.ПланНакоп КАК Осталось
ПОМЕСТИТЬ ВТ_ОсталосьОтгрузить
ИЗ
    ВТ_План КАК План,
    ВТ_ОтгруженоИт КАК Отгружено
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОсталосьОтгрузить.Поле1 КАК Поле1,
    ВЫБОР
        КОГДА ОсталосьОтгрузить.Осталось < 0
            ТОГДА 0
        ИНАЧЕ ВЫБОР
                КОГДА ОсталосьОтгрузить.Осталось > ОсталосьОтгрузить.Поле2
                    ТОГДА ОсталосьОтгрузить.Поле2
                ИНАЧЕ ОсталосьОтгрузить.Осталось
            КОНЕЦ
    КОНЕЦ КАК Осталось
ИЗ
    ВТ_ОсталосьОтгрузить КАК ОсталосьОтгрузить
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой