Имя: Пароль:
1C
 
В запросе не группирует с Null
,
0 Klesk666
 
04.06.15
11:00
во временной таблице в некоторых значениях есть Null
делаю запрос к ней, а эти поля не группируются, почему и как можно сделать?
1 Любопытная
 
04.06.15
11:02
Потому что NULL. Замени его чем-нибудь более удобоваримым
2 ДенисЧ
 
04.06.15
11:06
По определению NULL
3 xaozai
 
04.06.15
11:11
выбрать ЕстьNULL(NULL, 0) КАК НольВместоNULL
4 sapphire
 
04.06.15
11:21
мдя... какие достижения, такие и вопросы. Пичалька.
5 Vladal
 
04.06.15
11:23
(0) "во временной таблице в некоторых значениях есть Null "
ПОчему? Это такая выборка, или результат соединения или еще что?
Запрос - в студию! Или довольствоваться попытками угадать проблему.
6 Klesk666
 
04.06.15
13:36
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РасчетыСКлиентамиПоДокументамРКО.ЗаказКлиента,
    РеализацияТоваровУслугИзменения.Ссылка КАК РТУ
ПОМЕСТИТЬ РТУЗаказы
ИЗ
    Документ.РеализацияТоваровУслуг.Изменения КАК РеализацияТоваровУслугИзменения
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументамРКО
        ПО РеализацияТоваровУслугИзменения.Ссылка = РасчетыСКлиентамиПоДокументамРКО.РасчетныйДокумент
ГДЕ
    РеализацияТоваровУслугИзменения.Узел = &Узел
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РасчетыСКлиентамиПоДокументам.Регистратор,
    РТУЗаказы.ЗаказКлиента
ПОМЕСТИТЬ ПКОЗаказы
ИЗ
    РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РТУЗаказы КАК РТУЗаказы
        ПО РасчетыСКлиентамиПоДокументам.ЗаказКлиента = РТУЗаказы.ЗаказКлиента
ГДЕ
    ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоДокументам.Регистратор) = ТИП(Документ.ПриходныйКассовыйОрдер)
    И РасчетыСКлиентамиПоДокументам.Регистратор.ПробитЧек
    И РасчетыСКлиентамиПоДокументам.Регистратор.Касса.Розничная
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РасчетыСКлиентамиПоДокументам.Регистратор,
    РТУЗаказы.ЗаказКлиента,
    РасчетыСКлиентамиПоДокументам.Регистратор.ЭквайринговыйТерминал.Касса
ПОМЕСТИТЬ ЭквайрингЗаказы
ИЗ
    РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РТУЗаказы КАК РТУЗаказы
        ПО РасчетыСКлиентамиПоДокументам.ЗаказКлиента = РТУЗаказы.ЗаказКлиента
ГДЕ
    ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоДокументам.Регистратор) = ТИП(Документ.ОперацияПоПлатежнойКарте)
    И РасчетыСКлиентамиПоДокументам.Регистратор.ЭквайринговыйТерминал.Касса.Розничная
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ) КАК Период,
    РТУЗаказы.РТУ,
    ПКОЗаказы.Регистратор КАК ПКО,
    ЭквайрингЗаказы.Регистратор КАК Эквайринг,
    ПКОЗаказы.Регистратор.Касса КАК Касса,
    РТУЗаказы.РТУ.Склад
ИЗ
    РТУЗаказы КАК РТУЗаказы
        ЛЕВОЕ СОЕДИНЕНИЕ ПКОЗаказы КАК ПКОЗаказы
        ПО РТУЗаказы.ЗаказКлиента = ПКОЗаказы.ЗаказКлиента
            И (НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(ПКОЗаказы.Регистратор.Дата, ДЕНЬ))
        ЛЕВОЕ СОЕДИНЕНИЕ ЭквайрингЗаказы КАК ЭквайрингЗаказы
        ПО РТУЗаказы.ЗаказКлиента = ЭквайрингЗаказы.ЗаказКлиента
            И (НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(ЭквайрингЗаказы.Регистратор.Дата, ДЕНЬ))
ГДЕ
    НЕ(ПКОЗаказы.Регистратор ЕСТЬ NULL
                И ЭквайрингЗаказы.Регистратор ЕСТЬ NULL )

СГРУППИРОВАТЬ ПО
    ПКОЗаказы.Регистратор,
    ЭквайрингЗаказы.Регистратор,
    РТУЗаказы.РТУ,
    НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ),
    ПКОЗаказы.Регистратор.Касса,
    РТУЗаказы.РТУ.Склад

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

ВЫБРАТЬ РАЗЛИЧНЫЕ
    НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ),
    РТУЗаказы.РТУ,
    ПКОЗаказы.Регистратор,
    ЭквайрингЗаказы.Регистратор,
    ЭквайрингЗаказы.Регистратор.ЭквайринговыйТерминал.Касса,
    РТУЗаказы.РТУ.Склад
ИЗ
    РТУЗаказы КАК РТУЗаказы
        ЛЕВОЕ СОЕДИНЕНИЕ ПКОЗаказы КАК ПКОЗаказы
        ПО РТУЗаказы.ЗаказКлиента = ПКОЗаказы.ЗаказКлиента
            И (НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(ПКОЗаказы.Регистратор.Дата, ДЕНЬ))
        ЛЕВОЕ СОЕДИНЕНИЕ ЭквайрингЗаказы КАК ЭквайрингЗаказы
        ПО РТУЗаказы.ЗаказКлиента = ЭквайрингЗаказы.ЗаказКлиента
            И (НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(ЭквайрингЗаказы.Регистратор.Дата, ДЕНЬ))
ГДЕ
    НЕ(ПКОЗаказы.Регистратор ЕСТЬ NULL
                И ЭквайрингЗаказы.Регистратор ЕСТЬ NULL )

СГРУППИРОВАТЬ ПО
    ПКОЗаказы.Регистратор,
    ЭквайрингЗаказы.Регистратор,
    РТУЗаказы.РТУ,
    НАЧАЛОПЕРИОДА(РТУЗаказы.РТУ.Дата, ДЕНЬ),
    РТУЗаказы.РТУ.Склад,
    ЭквайрингЗаказы.Регистратор.ЭквайринговыйТерминал.Касса
7 Flyd-s
 
04.06.15
13:40
null это плохо
8 Ненавижу 1С
 
гуру
04.06.15
13:42
(7) что значит не группируется?
9 Ёпрст
 
04.06.15
13:45
(8) видать ТС думает, что при юнионе не будет повторений :)

(7) мот тебе ОБЪЕДИНИТЬ, а не ОБЪЕДИНИТЬ ВСЕ надоть  ?...
10 Klesk666
 
04.06.15
14:39
решил через ВЫБОР КОГДА ЭквайрингЗаказы.Регистратор ЕСТЬ NULL