Имя: Пароль:
1C
1С v8
наверно, сложно...Как отфильтровать таблицу запросом по комбинации полей?
,
0 КошерныйТролль
 
12.02.14
19:33
Таблица1
Поле1|Поле2|Поле3|Поле4

Таблица2
Поле1|Поле2

Как соединить Таблица1 с Таблица2 по Поле1, Поле2 таким образом, чтобы получить результат соединения, в котором отсутствуют комбинации значений Поле1 и Поле2 Таблицы2?
Т.е. надо фильтрануть Таблицу1, исключив из нее комбинации Таблица2...
1 ДенисЧ
 
12.02.14
19:34
Левое соединение
где т2.Поле1 ЕСТЬ NULL и т2.Поле2 ЕСТЬ nULL
2 КошерныйТролль
 
12.02.14
19:36
(1) в итоге ничего не отфильтруется
3 КошерныйТролль
 
12.02.14
19:40
(1) Пля, а ведь точно! Должно получиться, попробую.
4 Torquader
 
12.02.14
19:40
(2) Левое соединение по Поле1 и Поле2 сделал ?
5 КошерныйТролль
 
12.02.14
19:45
(4) Понял смысл. Рзультатом, наверно, будет таблица, строки которой не соединились по условию, то есть останется то, что нужно.
6 КошерныйТролль
 
12.02.14
20:21
(1) А-ха-ха! Не работает, результатом является то же самое, что и таблица1.
7 КошерныйТролль
 
12.02.14
20:24
То есть, ничего не соединяется, соответственно, в результирующую таблицу тупо копируются строки Таблица1
8 КошерныйТролль
 
12.02.14
20:27
Так, как советовали в (1), муйня полная :)

ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 10
    Банки.Город КАК Город,
    Банки.КоррСчет,
    Банки.Телефоны
ПОМЕСТИТЬ т1
ИЗ
    Справочник.Банки КАК Банки

УПОРЯДОЧИТЬ ПО
    Город УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 3
    Банки.Город КАК Город,
    Банки.КоррСчет,
    Банки.Телефоны
ПОМЕСТИТЬ т2
ИЗ
    Справочник.Банки КАК Банки

УПОРЯДОЧИТЬ ПО
    Город УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    т1.Город КАК Город,
    т1.КоррСчет,
    т1.Телефоны
ИЗ
    т1 КАК т1
        ЛЕВОЕ  СОЕДИНЕНИЕ т2 КАК т2
        ПО (т2.Город ЕСТЬ NULL )
            И (т2.КоррСчет ЕСТЬ NULL )

УПОРЯДОЧИТЬ ПО
    Город УБЫВ
9 Torquader
 
12.02.14
20:31
Бл...!
Т1 КАК Т1 ЛЕВОЕ СОЕДИНЕНИЕ Т2 КАК Т2 ПО Т1.Город=Т2.Город И Т2.КоррСчет=Т1.КоррСчет
ГДЕ Т2.Город ЕСТЬ NULL И Т2.КоррСчет ЕСТЬ NULL

Скобки сам расставишь.
10 mistеr
 
12.02.14
20:33
(8) Отличительный признак современного человека: материться он учится раньше, чем читать.

Тебе ж по-русски написали "ГДЕ", а не "ПО".
11 Torquader
 
12.02.14
20:34
(10) Я ему в (4) написал, думал, что он поймёт.
12 КошерныйТролль
 
12.02.14
20:41
(9) точно так же пять минут назад выматерился и написал почти то же самое :)

ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 10
    Банки.Город КАК Город,
    Банки.КоррСчет,
    Банки.Телефоны
ПОМЕСТИТЬ т1
ИЗ
    Справочник.Банки КАК Банки

УПОРЯДОЧИТЬ ПО
    Город УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 3
    Банки.Город КАК Город,
    Банки.КоррСчет,
    Банки.Телефоны
ПОМЕСТИТЬ т2
ИЗ
    Справочник.Банки КАК Банки

УПОРЯДОЧИТЬ ПО
    Город УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    т1.Город КАК Город,
    т1.КоррСчет,
    т1.Телефоны
ИЗ
    т1 КАК т1
        ЛЕВОЕ СОЕДИНЕНИЕ т2 КАК т2
        ПО (т2.Город = т1.Город)
            И (т2.КоррСчет = т1.КоррСчет)
ГДЕ
    т2.Город ЕСТЬ NULL

УПОРЯДОЧИТЬ ПО
    Город УБЫВ
13 КошерныйТролль
 
12.02.14
20:43
(1) ЧЮВАК, иди учи левое соединение и не сбивай профиссионалов с толку!!!
14 Torquader
 
12.02.14
20:45
(13) Так заработало ?
По-мойму, вполне должно. (только КоррСчет добавь, а то действительно - результат будет "интересный")
15 Torquader
 
12.02.14
20:46
Хотя, с другой стороны, там где Город=Null там и счёт тоже.
P.S. а в таблице поле со значением Null может быть ? В SQL-то это сплошь и рядом - при формировании временных таблиц про это забывать не надо.
16 КошерныйТролль
 
12.02.14
20:47
(14) да, работает.
Там Город  и Корсчет всегда будут NULL. Потому, конечно, можно второе условие для верности добавить :)
17 КошерныйТролль
 
12.02.14
20:48
(15) NULL в реквизите справочника может быть только если глюк какой
18 КошерныйТролль
 
12.02.14
20:49
или если поле составного типа
19 КошерныйТролль
 
12.02.14
20:51
(14) спасибо за помощь :)
20 КошерныйТролль
 
12.02.14
20:53
(1) Чувак, прости, я не понял тебя.
Ты в ГДЕ советовал. А я подумал, что это условие соединения.
21 КошерныйТролль
 
12.02.14
20:54
Вечер, можжечок набекрень
22 m-serg74
 
12.02.14
21:49
(20) сам не понял, а уже в (13) под...ебывать начал, не красиво...
23 КошерныйТролль
 
12.02.14
22:08
(22) да, не красиво, извинился. И ты меня прости.
24 m-serg74
 
12.02.14
22:09
(23) мне то не за что...
25 КошерныйТролль
 
12.02.14
22:10
(24) Все равно прости
26 m-serg74
 
12.02.14
22:15
(25) ну если это так важно, то без проблем... и это... удачи
27 Torquader
 
12.02.14
22:59
(17) Ты выбираешь из временной таблицы - кто тебя знает, как ты её потом "готовить" будешь - там могут и Null и вообще всё что угодно быть.
28 Torquader
 
12.02.14
23:00
(20) Тебе в (4) написали, почему нужно левое соединение делать.
Я, конечно, не телепат, то предполагал что что-то пойдёт не так.