|
1с Сравнение двух таблиц | ☑ | ||
---|---|---|---|---|
0
illiona
naïve
28.03.22
✎
08:40
|
ВЫБРАТЬ
Т1.Номенклатура, Т1.Характеристика, Т1.Количество ИЗ &Таблица1 как Т1 ЛЕВОЕ СОЕДИНЕНИЕ Таблица2 КАК Т2 ПО Т1.Номенклатура = Т2.Номенклатура И Т1.Характеристика = Т2.Характеристика ГДЕ Т2.Количество ЕСТЬ NULL ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т2.Номенклатура, Т2.Характеристика, Т2.Количество ИЗ &Таблица2 как Т2 ЛЕВОЕ СОЕДИНЕНИЕ Таблица1 КАК Т1 ПО Т2.Номенклатура = Т1.Номенклатура И Т2.Характеристика = Т1.Характеристика ГДЕ Т1.Количество ЕСТЬ NULL ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т1.Номенклатура, Т1.Характеристика, Т1.Количество - Т2. Количество ИЗ &Таблица1 как Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица2 КАК Т2 ПО Т1.Номенклатура = Т2.Номенклатура И Т1.Характеристика = Т2.Характеристика Надо сравнить две таблица Ошибка Содержимое объекта данных может быть выбрано только во временную таблицу |
|||
1
XLife
28.03.22
✎
08:41
|
из таблицы значений данные надо предварительно выбирать во временные таблицы, а потом всё остальное...
|
|||
2
Вафель
28.03.22
✎
08:42
|
Сначала во временную, потом уже селекты
|
|||
3
illiona
naïve
28.03.22
✎
10:18
|
ВЫБРАТЬ
Таблица1.Номенклатура КАК Номенклатура, Таблица1.Серия КАК Серия, Таблица1.Количество КАК Количество ПОМЕСТИТЬ ВнутренняяТаблицаАвтомобилей ИЗ &Таблица1 КАК Таблица1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таблица2.Номенклатура КАК Номенклатура, Таблица2.Серия КАК Серия, Таблица2.Количество КАК Количество ПОМЕСТИТЬ ВнутренняяТаблицаАвтомобилей2 ИЗ &Таблица2 КАК Таблица2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Т1.Номенклатура КАК Номенклатура, Т1.Серия КАК Серия, Т1.Количество КАК Количество ИЗ ВнутренняяТаблицаАвтомобилей КАК Т1 ЛЕВОЕ СОЕДИНЕНИЕ ВнутренняяТаблицаАвтомобилей2 КАК Т2 ПО (Т1.Номенклатура = Т2.Номенклатура) И (Т1.Серия = Т2.Серия) ГДЕ Т2.Количество ЕСТЬ NULL ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т2.Номенклатура, Т2.Серия, Т2.Количество ИЗ ВнутренняяТаблицаАвтомобилей2 КАК Т2 ЛЕВОЕ СОЕДИНЕНИЕ ВнутренняяТаблицаАвтомобилей КАК Т1 ПО Т2.Номенклатура = Т1.Номенклатура И Т2.Серия = Т1.Серия ГДЕ Т1.Количество ЕСТЬ NULL ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т1.Номенклатура, Т1.Серия, Т1.Количество - Т2.Количество ИЗ ВнутренняяТаблицаАвтомобилей КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнутренняяТаблицаАвтомобилей2 КАК Т2 ПО Т1.Номенклатура = Т2.Номенклатура И Т1.Серия = Т2.Серия Получилось, но оставляет строку если в первой и второй таблице она совпадает. |
|||
4
illiona
naïve
28.03.22
✎
10:18
|
а должен запрос только различия выводить
|
|||
5
XLife
28.03.22
✎
10:21
|
полное соединение с условиями на 'есть null'?
|
|||
6
acht
28.03.22
✎
10:25
|
ВЫБРАТЬ
Различия.Номенклатура КАК Номенклатура, Различия.Серия КАК Серия, Различия.Количество КАК Количество ИЗ ( ВЫБРАТЬ Т.Номенклатура КАК Номенклатура, Т.Серия КАК Серия, Т.Количество КАК Количество, 1 КАК Флаг ИЗ ВнутренняяТаблицаАвтомобилей КАК Т ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т.Номенклатура КАК Номенклатура, Т.Серия КАК Серия, Т.Количество КАК Количество, -1 КАК Флаг ИЗ ВнутренняяТаблицаАвтомобилей КАК Т ) КАК Различия СГРУППИРОВАТЬ ПО Различия.Номенклатура, Различия.Серия, Различия.Количество ИМЕЮЩИЕ СУММА(Флаг) <> 0 |
|||
7
acht
28.03.22
✎
10:25
|
Не проверял
|
|||
8
acht
28.03.22
✎
10:26
|
После объединения там ВнутренняяТаблицаАвтомобилей2 КАК Т, конечно
|
|||
9
DmVl76
28.03.22
✎
10:37
|
(6) Будет выдавать только отсутствующие в одной из таблиц позиции, если разное количество, то не попадет
ВЫБРАТЬ Различия.Номенклатура КАК Номенклатура, Различия.Серия КАК Серия, СУММА(Различия.Количество КАК Количество) ИЗ ( ВЫБРАТЬ Т.Номенклатура КАК Номенклатура, Т.Серия КАК Серия, Т.Количество КАК Количество, ИЗ ВнутренняяТаблицаАвтомобилей КАК Т ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т1.Номенклатура КАК Номенклатура, Т1.Серия КАК Серия, -Т1.Количество КАК Количество, ИЗ ВнутренняяТаблицаАвтомобилей2 КАК Т1 ) КАК Различия СГРУППИРОВАТЬ ПО Различия.Номенклатура, Различия.Серия ИМЕЮЩИЕ СУММА(Количество) <> 0 Если нужно количество в каждой таблице, соединяем в конце с первоначальными |
|||
10
illiona
naïve
28.03.22
✎
10:40
|
Не могу понять где поставить есть null
|
|||
11
DmVl76
28.03.22
✎
10:40
|
(9) Ошибся, там группировка по количеству тоже идет, попадать будет, но потом разбирать не очень удобно будет
Номенклатура1 Серия1 10 1 Номенклатура1 Серия1 8 -1 |
|||
12
DmVl76
28.03.22
✎
10:42
|
(10) Условие какое-нужно отличающиеся по количеству позиции или только встречающиеся в одной из таблиц? Если первое - то (6) или (9)
|
|||
13
illiona
naïve
28.03.22
✎
10:44
|
(11) у меня почему-то вообще не работает
Ожидается выражение ")" СУММА(Различия.Количество <<?>>КАК Количество) |
|||
14
illiona
naïve
28.03.22
✎
10:46
|
условие может встречаться в первой и не быть во второй, также и в обратную сторону, может по количеству быть разное
|
|||
15
DmVl76
28.03.22
✎
10:48
|
СУММА(Различия.Количество) КАК Количество и запятые убрать после Количество в подзапросе
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |