Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 17:43

СКД

Автор lezhek, 27 авг 2015, 13:35

0 Пользователей и 1 гость просматривают эту тему.

lezhek

Подскажите пожалуйста, можно ли в СКД создать 2 набора данных, сравнить их между собой и вывести те значения которые различаются?

cska-fanat-kz

можно в одном наборе данных, т.е. в одном запросе, сформировать 2 временные таблицы и сравнить.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

lezhek

А Как в СКД две Временные таблицы можно сравнить?

Kironten

Цитата: lezhek от 27 авг 2015, 13:51
А Как в СКД две Временные таблицы можно сравнить?

Первое, что мне приходит в голову:
Полное соединение и условия ВЫБОР КОГДА ТОГДА через ЕСТЬ NULL.
А следующим шагом ВЫБРАТЬ РАЗЛИЧНЫЕ из всего этого.
Наверно есть какое-то более изящное решение.

cska-fanat-kz

снова к вопросу о понимании задачи...
смотря что значит сравнить...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий@

Во время полного соединения таблиц в пустые строки в какое то поле ставить единичку, а потом отбирать строки с единичками.

lezhek

ВЫБРАТЬ 
ПартииТоваровНаСкладахБухгалтерскийУчет.Регистратор КАК Регистратор,
ПартииТоваровНаСкладахБухгалтерскийУчет.Номенклатура,
ПартииТоваровНаСкладахБухгалтерскийУчет.ХарактеристикаНоменклатуры,
ПартииТоваровНаСкладахБухгалтерскийУчет.Количество как количество1,
0 как количество2,
ПартииТоваровНаСкладахБухгалтерскийУчет.Период
ИЗ
РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет КАК ПартииТоваровНаСкладахБухгалтерскийУчет
    ОБЪЕДИНИТЬ
ВЫБРАТЬ
ТоварыНаСкладах.Регистратор КАК Регистратор,
ТоварыНаСкладах.Номенклатура,
ТоварыНаСкладах.ХарактеристикаНоменклатуры,
0 как Количетсво1,
ТоварыНаСкладах.Количество как количество2,
ТОварыНаСкладах.Период
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

   
Подскажите пожалуйста, как можно убрать одинаковые количества?
   

Дмитрий@


ВЫБОР
    ЕСТЬNULL(ПерваяТаблица.Номенклатура,1) КАК Номенклатура1,
    ПерваяТаблица.Количество КАК Количество1,
    ЕСТЬNULL(ВтораяТаблица.Номенклатура,1) КАК Номенклатура2,
    ВтораяТаблица.Количество КАК Количество2
ПОМЕСТИТЬ ВТ
ИЗ Таблица1 КАК ПерваяТаблица
ПОЛНОЕ СОЕДИНЕНИЕ
ТАБЛИЦА2 КАК ВтораяТаблица
ПО ПерваяТаблица.Номенклатура = ВтораяТаблица.Номенклатура И
ПерваяТаблица.Количество = ВтораяТаблица.Количество
ГДЕ
    ПерваяТаблица.Номенклатура = 1 ИЛИ ВтораяТаблица.Номенклатура = 1
;
//////////////////////////////////////////////
ВЫБРАТЬ
    Таблица.Номенклатура1,
    Таблица.Количество1,
ИЗ
    ВТ КАК Таблица
ГДЕ
    Таблица.Номенклатура2 = 1

Объединить

Выбрать
    Таблица.Номенклатура2,
    Таблица.Количество2
Из
    ВТ КАК Таблица
ГДЕ
    Таблица.Номенклатура1 = 1

Klyacksa

Что значит убрать одинаковые количества? Одинаковые в Количество1 и Количество2, или где? Чтобы не задваивались одинаковые строки или ищем различия в таблицах?

2Дмитрий@: зачем единицы? Зачем объединение? Зачем временные таблицы? Зачем выбирать номенклатуру из обеих таблиц, если по ней соединяете? Намного проще:


ВЫБОР
    ЕСТЬNULL(ПерваяТаблица.Номенклатура,ВтораяТаблица.Номенклатура) КАК Номенклатура,
    ЕСТЬNULL(ПерваяТаблица.Характеристика,ВтораяТаблица.Характеристика) КАК Характеристика,
    ЕСТЬNULL(ПерваяТаблица.Количество, ВтораяТаблица.Количество) КАК Количество
ИЗ Таблица1 КАК ПерваяТаблица
ПОЛНОЕ СОЕДИНЕНИЕ
ТАБЛИЦА2 КАК ВтораяТаблица
ПО ПерваяТаблица.Номенклатура = ВтораяТаблица.Номенклатура И
ПерваяТаблица.Характеристика = ВтораяТаблица.Характеристика И
ПерваяТаблица.Количество = ВтораяТаблица.Количество
ГДЕ
    ПерваяТаблица.Номенклатура есть null ИЛИ ВтораяТаблица.Номенклатура есть null
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Дмитрий@

Цитировать2Дмитрий@: зачем единицы? Зачем объединение? Зачем временные таблицы? Зачем выбирать номенклатуру из обеих таблиц, если по ней соединяете? Намного проще:
Я написал первое что пришло в голову.
Спасибо за интересный вариант.

Теги:

Похожие темы (1)

Рейтинг@Mail.ru

Поиск