|   |   | 
| 
 | Различие по данным в разных таблицах значений | ☑ | ||
|---|---|---|---|---|
| 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 | 
        ясно, япсасибо     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |