|
Различие по данным в разных таблицах значений | ☑ | ||
---|---|---|---|---|
0
Валидатор
12.03.14
✎
11:02
|
Есть 2 таблицы значений с заполненными данными, нужно сделать, чтобы все позиции, которые в этих таблицах различаются попали в 3 таблицу значений, как так сделать? вот что есть по получению одинаковых позиций из 2х таблиц:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | тзСинхронизацияЕК.Код КАК Код, | тзСинхронизацияЕК.Артикул КАК Артикул, | тзСинхронизацияЕК.Наименование КАК Наименование, | тзСинхронизацияЕК.УникальныйИдентификатор КАК УникальныйИдентификатор |ПОМЕСТИТЬ тзСинхронизацияЕК |ИЗ | &тзСинхронизацияЕК КАК тзСинхронизацияЕК |; | | X |ВЫБРАТЬ | тзСинхронизацияХД.ИДОбъекта77, | тзСинхронизацияХД.Наименование77, | тзСинхронизацияХД.ЕКГУИД |ПОМЕСТИТЬ тзСинхронизацияХД |ИЗ | &тзСинхронизацияХД КАК тзСинхронизацияХД |; | | X |ВЫБРАТЬ | тзСинхронизацияЕК.Код, | тзСинхронизацияЕК.Артикул, | тзСинхронизацияЕК.Наименование, | тзСинхронизацияЕК.УникальныйИдентификатор, | тзСинхронизацияХД.ИДОбъекта77, | тзСинхронизацияХД.Наименование77, | тзСинхронизацияХД.ЕКГУИД |ИЗ | тзСинхронизацияЕК КАК тзСинхронизацияЕК | ВНУТРЕННЕЕ СОЕДИНЕНИЕ тзСинхронизацияХД КАК тзСинхронизацияХД | ПО тзСинхронизацияЕК.УникальныйИдентификатор = тзСинхронизацияХД.ЕКГУИД"; Запрос.УстановитьПараметр("тзСинхронизацияЕК",ТаблицаДляСинхронизаций); Запрос.УстановитьПараметр("тзСинхронизацияХД",ТаблицаНоменклатуры); |
|||
1
Wobland
12.03.14
✎
11:03
|
полное же. с условием на нулл
|
|||
2
Валидатор
12.03.14
✎
11:04
|
(1) где именно на 0 условие?
|
|||
3
vmv
12.03.14
✎
11:04
|
в УПП в общих модулях есть функции по работе с ТЗ как с множествами
|
|||
4
Валидатор
12.03.14
✎
11:05
|
(1) полное соединение объединит обе таблицы в одну и будет очень много записей, а мне нужны только те, которые не совпадают
|
|||
5
Wobland
12.03.14
✎
11:13
|
(4) те, у которых тот или другой УИД есть нулл?
|
|||
6
ShoGUN
12.03.14
✎
11:15
|
(5) +1
|
|||
7
Валидатор
12.03.14
✎
11:15
|
(5) те, у которых УИД не совпадает
|
|||
8
ShoGUN
12.03.14
✎
11:16
|
+(6) Главное "= NULL" не написать :)
|
|||
9
Wobland
12.03.14
✎
11:18
|
(7) ты правда этого хочешь?
|
|||
10
Валидатор
12.03.14
✎
11:18
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | тзСинхронизацияЕК.Код КАК Код, | тзСинхронизацияЕК.Артикул КАК Артикул, | тзСинхронизацияЕК.Наименование КАК Наименование, | тзСинхронизацияЕК.УникальныйИдентификатор КАК УникальныйИдентификатор |ПОМЕСТИТЬ тзСинхронизацияЕК |ИЗ | &тзСинхронизацияЕК КАК тзСинхронизацияЕК |ГДЕ | тзСинхронизацияЕК.УникальныйИдентификатор ЕСТЬ NULL |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тзСинхронизацияХД.ИДОбъекта77, | тзСинхронизацияХД.Наименование77, | тзСинхронизацияХД.ЕКГУИД |ПОМЕСТИТЬ тзСинхронизацияХД |ИЗ | &тзСинхронизацияХД КАК тзСинхронизацияХД |ГДЕ | тзСинхронизацияХД.ЕКГУИД ЕСТЬ NULL |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тзСинхронизацияЕК.Код, | тзСинхронизацияЕК.Артикул, | тзСинхронизацияЕК.Наименование, | тзСинхронизацияЕК.УникальныйИдентификатор, | тзСинхронизацияХД.ИДОбъекта77, | тзСинхронизацияХД.Наименование77, | тзСинхронизацияХД.ЕКГУИД |ИЗ | тзСинхронизацияЕК КАК тзСинхронизацияЕК | ПОЛНОЕ СОЕДИНЕНИЕ тзСинхронизацияХД КАК тзСинхронизацияХД | ПО тзСинхронизацияЕК.УникальныйИдентификатор = тзСинхронизацияХД.ЕКГУИД"; Запрос.УстановитьПараметр("тзСинхронизацияЕК", ТаблицаДляСинхронизаций); Запрос.УстановитьПараметр("тзСинхронизацияХД",ТаблицаНоменклатуры); ОбщийРезультат = Запрос.Выполнить().Выгрузить() вот сделал, в итоге пустая ТЗ возвращается |
|||
11
ShoGUN
12.03.14
✎
11:18
|
(7)То есть найти те строки, для которых нет строки с таким же УИД в другой таблице? Если да, то всё верно тебе сказали - полное соединение и условие ЕСТЬ NULL на поля УИД.
|
|||
12
Валидатор
12.03.14
✎
11:18
|
(9) я хочу чтобы номенклатура, которая по УИД не совпадает мне в ТЗ в результате запроса попадала
|
|||
13
Валидатор
12.03.14
✎
11:21
|
(11) - (10) да, именно так, и сделал но теперь он мне пустую таблицу возвращает, а не таблицу с различиями
|
|||
14
ShoGUN
12.03.14
✎
11:21
|
(10) >вот сделал, в итоге пустая ТЗ возвращается
Полное соединение возвращает пустую таблицу только если обе исходные таблицы пустые. Что-то ты не договариваешь. |
|||
15
Валидатор
12.03.14
✎
11:21
|
(14) в параметры я передаю 2 таблицы, обе из них заполнены
|
|||
16
Wobland
12.03.14
✎
11:23
|
(15) только сразу же убиваешь у них всё ещё до соединения
|
|||
17
Валидатор
12.03.14
✎
11:24
|
(16) да, увидел, переделал, результат тот же
Запрос.Текст = "ВЫБРАТЬ | тзСинхронизацияЕК.Код КАК Код, | тзСинхронизацияЕК.Артикул КАК Артикул, | тзСинхронизацияЕК.Наименование КАК Наименование, | тзСинхронизацияЕК.УникальныйИдентификатор КАК УникальныйИдентификатор |ПОМЕСТИТЬ тзСинхронизацияЕК |ИЗ | &тзСинхронизацияЕК КАК тзСинхронизацияЕК |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тзСинхронизацияХД.ИДОбъекта77, | тзСинхронизацияХД.Наименование77, | тзСинхронизацияХД.ЕКГУИД |ПОМЕСТИТЬ тзСинхронизацияХД |ИЗ | &тзСинхронизацияХД КАК тзСинхронизацияХД |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тзСинхронизацияЕК.Код, | тзСинхронизацияЕК.Артикул, | тзСинхронизацияЕК.Наименование, | тзСинхронизацияЕК.УникальныйИдентификатор, | тзСинхронизацияХД.ИДОбъекта77, | тзСинхронизацияХД.Наименование77, | тзСинхронизацияХД.ЕКГУИД |ИЗ | тзСинхронизацияЕК КАК тзСинхронизацияЕК | ПОЛНОЕ СОЕДИНЕНИЕ тзСинхронизацияХД КАК тзСинхронизацияХД | ПО тзСинхронизацияЕК.УникальныйИдентификатор = тзСинхронизацияХД.ЕКГУИД |ГДЕ | тзСинхронизацияЕК.УникальныйИдентификатор ЕСТЬ NULL | И тзСинхронизацияХД.ЕКГУИД ЕСТЬ NULL "; |
|||
18
ShoGUN
12.03.14
✎
11:25
|
(16) Тьфу, условия не посмотрел во временных таблицах. Всё так.
(15) ЕСТЬ NULL применять надо ПОСЛЕ полного соединения, а не ДО! |
|||
19
ShoGUN
12.03.14
✎
11:25
|
(17) Не И, а ИЛИ :))))
|
|||
20
ShoGUN
12.03.14
✎
11:25
|
Совсем мозгами не думаем...
|
|||
21
Валидатор
12.03.14
✎
11:26
|
(20) в итоге все равно получается объединенная ТЗ
|
|||
22
Wobland
12.03.14
✎
11:27
|
(21) всё верно, совпадающих нет
|
|||
23
ShoGUN
12.03.14
✎
11:28
|
(21) Которая содержит только несовпадающие строки.
|
|||
24
Валидатор
12.03.14
✎
11:30
|
ясно, япсасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |