Имя: Пароль:
1C
1С v8
как сделать такой запрос:?
, ,
0 Помогите
 
14.08.13
09:09
Нужно выбрать данные из двух таблиц (Таблица1, Таблица2) , с левым соединением с еще одной таблицей (Таблица0), причем выбранные значения могут быть NULL, так как не всегда код из Таблица0 есть в тех двух таблицах или в одной из них. Вот схема так выбирается:


ВЫБРАТЬ
    Таблица1.Ссылка1 как Ссылка,
    Таблица2.Ссылка2 как Ссылка
ИЗ
    Таблица0
        ЛЕВОЕ СОЕДИНЕНИЕ Таблица1
        ПО Таблица0.Код = Таблица1.Код
        ЛЕВОЕ СОЕДИНЕНИЕ Таблица2
        ПО Таблица0.Код = Таблица2.Код


Но нужно еще сделать так, чтобы выбирались не NULL, то есть если
Таблица1.Ссылка1 не NULL, то выбралась она, иначе если Таблица2.Ссылка2 не NULL, то выбралась она, иначе в выборку NULL не должен попасть.
Как такое написать?
1 Wobland
 
14.08.13
09:10
полное не хочешь? и естьNULL(таб1, таб2)
2 Помогите
 
14.08.13
09:24
Если делать полное, придется проверять на NULL еще и таблицу0
3 Wobland
 
14.08.13
09:25
(2) ну оба левых, не вчитывался
4 Ёпрст
 
14.08.13
09:27
ВЫБРАТЬ
    ЕстьNull(Таблица1.Ссылка1,Таблица1.Ссылка2) как ссылка

Где
    ЕстьNull(Таблица1.Ссылка1,Таблица1.Ссылка2)не есть Null
5 Рэйв
 
14.08.13
09:27
Выбор Когда ЕстьNULL(Таблица1.Код,0)=0 Тогда
       Таблица1.Код
      Иначе
       Таблица2.Код
Конец  КАК Код2
6 Рэйв
 
14.08.13
09:27
ой, т.е наоборот  в первом Таблица2.Код
а иначе
Таблица1.Код
7 Помогите
 
14.08.13
09:30
(4) Не понятно. Как это ЕстьNull(...) не есть Null ?

(5) Это условие будет действовать после СОЕДИНЕНИЕ или до?
Так то Таблица1.Код не NULL в базе, оно станет Null только после соединения если такого кода вообще нет в той таблице.
8 Рэйв
 
14.08.13
09:31
(7)После конечно.
9 Ёпрст
 
14.08.13
09:40
(7) че не понятного?

если первое значение Null, вернёт второе, если второе значение Null - его пофильтрует есть не Null
10 Помогите
 
14.08.13
09:40
А как убрать из выборки где и там и там NULL?
11 Помогите
 
14.08.13
09:41
(10) это для (8)
12 Рэйв
 
14.08.13
09:42
ГДЕ  ЕстьNULL(Таблица1.Код,"ляляля")<>"ляляля"
     И ЕстьNULL(Таблица2.Код,"ляляля")<>"ляляля"
13 Рэйв
 
14.08.13
09:42
(12) к (11)
14 Рэйв
 
14.08.13
09:44
или
ГДЕ  НЕ Таблица1.Код Есть NULL
     И НЕ Таблица2.Код Есть NULL
15 Помогите
 
14.08.13
09:46
(4) Спасибо! Работает.

Только надо НЕ переставить так:
не ЕстьNull(Таблица1.Ссылка1,Таблица1.Ссылка2) есть Null
16 Помогите
 
14.08.13
09:46
Не знал что есть такая штуку ЕстьNull
17 Ёпрст
 
14.08.13
09:47
(15) ну, за синтаксис я не помню.. звиняйте.
Обычно конструктор исправляет.
18 Помогите
 
14.08.13
09:57
(14) ага, так тоже можно
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший