Имя: Пароль:
1C
 
Продажи по дням
,
0 Дебет
 
19.08.16
05:53
в выстраданном запросе, который должен показывать продажи на каждый день. Не показывает все дни. Хотя в виртуальной таблице &ТЗ полностью все даты. Но пустых дат нет =( какое бы соединение не ставил. Если выбираю данные только из &ТЗ даты все. Не как не пойму почему нет пустых дат =(

Запрос.Текст=
        "ВЫБРАТЬ
        |    ТЗ.НачИнтервала
        |ПОМЕСТИТЬ ТЗ2
        |ИЗ
        |    &ТЗ КАК ТЗ
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ТЗ2.НачИнтервала,
        |    ВложенныйЗапрос.Номенклатура,
        |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период1, НЕДЕЛЯ) КАК Поле2,
        |    СУММА(ВЫБОР
        |            КОГДА ВложенныйЗапрос.Период1 = &ДатаНП
        |                ТОГДА ВложенныйЗапрос.СуммаОборот
        |            ИНАЧЕ ВЫБОР
        |                    КОГДА ВложенныйЗапрос.Период1 <= ТЗ2.НачИнтервала
        |                        ТОГДА ВложенныйЗапрос.СуммаОборот
        |                    ИНАЧЕ 0
        |                КОНЕЦ
        |        КОНЕЦ) КАК Поле1
        |ИЗ
        |    (ВЫБРАТЬ
        |        ПродажиОбороты.Номенклатура КАК Номенклатура,
        |        НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ) КАК Период1,
        |        ПродажиОбороты.СуммаОборот КАК СуммаОборот
        |    ИЗ
        |        РегистрНакопления.Продажи.Обороты(&ДатаНП, &ДатаКп, Неделя, Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры) КАК ПродажиОбороты) КАК ВложенныйЗапрос
        |        ЛЕВОЕ СОЕДИНЕНИЕ ТЗ2 КАК ТЗ2
        |        ПО (ТЗ2.НачИнтервала = ВложенныйЗапрос.Период1)
        |ГДЕ
        |    ВложенныйЗапрос.Номенклатура = &Номенклатура
        |
        |СГРУППИРОВАТЬ ПО
        |    ТЗ2.НачИнтервала,
        |    ВложенныйЗапрос.Номенклатура,
        |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период1, НЕДЕЛЯ)";
        Запрос.УстановитьПараметр("ТЗ",таблицаНеделя );
        Запрос.УстановитьПараметр("ДатаНП",НачДата );
        Запрос.УстановитьПараметр("ДатаКп",КонДата );
        запрос.УстановитьПараметр("ВидНоменклатуры",Перечисления.ВидыНоменклатуры.Услуга );
1 Дебет
 
19.08.16
06:21
ап
2 Dragner
 
19.08.16
06:32
Ради прикола.
"ВЫБРАТЬ
        |    ТЗ.НачИнтервала
        |ПОМЕСТИТЬ ТЗ2
        |ИЗ
        |    &ТЗ КАК ТЗ
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ТЗ2.НачИнтервала,
        |    ВложенныйЗапрос.Номенклатура,
        |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период1, НЕДЕЛЯ) КАК Поле2,
        |    СУММА(ВЫБОР
        |            КОГДА ВложенныйЗапрос.Период1 = &ДатаНП
        |                ТОГДА ВложенныйЗапрос.СуммаОборот
        |            ИНАЧЕ ВЫБОР
        |                    КОГДА ВложенныйЗапрос.Период1 <= ТЗ2.НачИнтервала
        |                        ТОГДА ВложенныйЗапрос.СуммаОборот
        |                    ИНАЧЕ 0
        |                КОНЕЦ
        |        КОНЕЦ) КАК Поле1
        |ИЗ
        |    ТЗ2 КАК ТЗ2
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ПродажиОбороты.Номенклатура КАК Номенклатура,
        |            НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ) КАК Период1,
        |            ПродажиОбороты.СуммаОборот КАК СуммаОборот
        |        ИЗ
        |            РегистрНакопления.Продажи.Обороты(&ДатаНП, &ДатаКп, Неделя, Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры) КАК ПродажиОбороты) КАК ВложенныйЗапрос
        |        ПО (ТЗ2.НачИнтервала = ВложенныйЗапрос.Период1)
        |ГДЕ
        |    ВложенныйЗапрос.Номенклатура = &Номенклатура
        |
        |СГРУППИРОВАТЬ ПО
        |    ТЗ2.НачИнтервала,
        |    ВложенныйЗапрос.Номенклатура,
        |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период1, НЕДЕЛЯ)";
        Запрос.УстановитьПараметр("ТЗ",таблицаНеделя );
        Запрос.УстановитьПараметр("ДатаНП",НачДата );
        Запрос.УстановитьПараметр("ДатаКп",КонДата );
        запрос.УстановитьПараметр("ВидНоменклатуры",Перечисления.ВидыНоменклатуры.Услуга );
3 Дебет
 
19.08.16
06:49
(2) удачно приколол
4 Dragner
 
19.08.16
07:16
(3) Смыл то ясен стал?
5 KODin1C
 
19.08.16
07:23
, НЕДЕЛЯ)
6 Dragner
 
19.08.16
07:29
(5) что смутило в неделе?
7 Дебет
 
19.08.16
07:43
(4) тот же результат
(5) а что не так в неделе?
8 Dragner
 
19.08.16
07:46
(7) результат может и тот же, запрос изменился. А почему у тебя результат не тот, который хочется - сам выясняй.
9 Дебет
 
19.08.16
08:02
(8) через конструктор -изменения не заметны
10 Ёпрст
 
19.08.16
08:13
(7) условие на ГДЕ в (2) воткни во вложенный запрос
11 Ёпрст
 
19.08.16
08:14
в параметры виртуальной таблицы .Продажи.Обороты(
12 Ёпрст
 
19.08.16
08:14
наслаждайся, кушай печенки
13 Дебет
 
19.08.16
08:21
(12) спасибо, пошел за печеньками
14 Dragner
 
19.08.16
09:37
(9) серьёзно что ли? Зрение плохое, да?
15 Dragner
 
19.08.16
09:39
Хотя, в целом, картина ясная.
16 RomanYS
 
19.08.16
09:49
(0) ЛЕВОЕ заменить на ПРАВОЕ и обязательно (11).
17 Дебет
 
19.08.16
10:01
(10)  в этом вся соль