Имя: Пароль:
1C
 
Поясните - почему NUL и РАЗЛИЧНЫЕ не совместимы?
0 RomaH
 
naïve
06.02.19
16:12
|ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ПолисМедицинскогоСтрахования.Пациент.ДатаРождения КАК ПациентДатаРождения,
    |    втТаблицаАкта.НомерСтроки КАК НомерСтроки
    |ПОМЕСТИТЬ втДатыРождения
    |ИЗ
    |    втТаблицаАкта КАК втТаблицаАкта
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПолисМедицинскогоСтрахования КАК ПолисМедицинскогоСтрахования
    |        ПО втТаблицаАкта.НомерПолиса = ПолисМедицинскогоСтрахования.НомерПолиса


как я думал, что это работает:

может попасться два или более полиса с одинаковым номером и разными пациентами с разными датами рождения
тогда в итоге получу две записи на один номер строки - обработаю ошибку в данных

но ... если в одном из полисов с таким номером пациент вообще не указан - то в дату рождения пишется NULL
и в итоговой таблице я получаю ОДНУ строку в итоге с NULL в дате рождения, второй - нет, хотя полис в котором пациент заполнен с таким номером есть.

исключаю полис с пустым пациентом и получаю запись с датой рождения:

    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ПолисМедицинскогоСтрахования.Пациент.ДатаРождения КАК ПациентДатаРождения,
    |    втТаблицаАкта.НомерСтроки КАК НомерСтроки
    |ПОМЕСТИТЬ втДатыРождения
    |ИЗ
    |    втТаблицаАкта КАК втТаблицаАкта
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПолисМедицинскогоСтрахования КАК ПолисМедицинскогоСтрахования
    |        ПО втТаблицаАкта.НомерПолиса = ПолисМедицинскогоСтрахования.НомерПолиса
    |            И (ПолисМедицинскогоСтрахования.Пациент <> ЗНАЧЕНИЕ(Справочник.Пациенты.ПустаяСсылка))


это так и должно быть?
1 ДенисЧ
 
06.02.19
16:14
Потому что любое сравнение с НУДЛ даёт ложь
2 scanduta
 
06.02.19
16:18
(1) верно

даже если сранвить 2 nulla будет ложь ))
3 RomaH
 
naïve
06.02.19
16:19
а нет - где-то запутался
дает две строки