|
Присоветуйте как сделать запрос | ☑ | ||
---|---|---|---|---|
0
Dmitry_FFF
10.02.22
✎
14:50
|
Есть таблица1
Товар Количество Тов1 6 Тов3 6 Тов5 6 и таблица2 Товар Количество Тов1 6 Тов2 6 Тов5 2 Мне нужно что бы в итоговый запрос попапло только не совпадающий строки обоих таблиц Я сделал запрос Выбрать * из Таблица1 Полное соединение Таблица2 по Таблица1.Товар=Таблица2. Товар У меня выходит результат Тов1 6 Тов1 6 Тов3 6 Тов5 6 Тов5 2 Тов2 6 Строка с Тов1 мне не нужна, потому что там количества совпадают, я пишу запрос Выбрать * из Таблица1 Полное соединение Таблица2 по Таблица1.Товар=Таблица2. Товар Где Таблица1.Количество<>Таблица2.Количество В итог попадает только строка Тов5 6 Тов5 2 Решение через временную таблицу не очень хочеться потому что совпадающих строк очень много, а не совпадающих мало |
|||
1
1Сергей
10.02.22
✎
14:52
|
ГДЕ ЕстьNULL(Таблица1.Количество, 0)<>ЕстьNULL(Таблица2.Количество, 0)
|
|||
2
ДенисЧ
10.02.22
✎
14:53
|
ЕСТЬNULL() на количества поставь
|
|||
3
vicof
10.02.22
✎
14:55
|
ЕСТЬNULL уже советовали?
|
|||
4
acht
10.02.22
✎
14:56
|
Через объединение, колонки количества разделить на две, сгруппировать по товару, оставить имеющие одинаковые суммы.
|
|||
5
1Сергей
10.02.22
✎
14:59
|
(4) нонконформизм какой-то
|
|||
6
Dmitry_FFF
10.02.22
✎
15:00
|
(1) Что то с таким вариантом перестали попадаеть в отбор строки которые есть в обоиз таблицах с разным количеством
Вот такое Тов5 6 Тов5 2 |
|||
7
acht
10.02.22
✎
15:01
|
(5) Полное соединение - вот это вот "нонкорформизм".
|
|||
8
Dmitry_FFF
10.02.22
✎
15:05
|
(6) Вот так сделал ГДЕ ЕстьNULL(Таблица1.Количество, 0)=0 или ЕстьNULL(Таблица2.Количество, 0)=0 или Таблица1.Количество<>Таблица2.Количество
|
|||
9
vicof
10.02.22
✎
15:07
|
(8) ЕстьNULL уже советовали?)
|
|||
10
1Садовник
10.02.22
✎
15:07
|
ВЫБРАТЬ
ЕСТЬNULL(Таблица1.Товар, Таблица2.Товар) КАК Товар, ЕСТЬNULL(Таблица1.Количество, 0) КАК Количество1, ЕСТЬNULL(Таблица2.Количество, 0) КАК Количество2 ИЗ Таблица1 КАК Таблица1 ПОЛНОЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО Таблица1.Товар = Таблица2.Товар ГДЕ НЕ ЕСТЬNULL(Таблица1.Количество, 0) = ЕСТЬNULL(Таблица2.Количество, 0) |
|||
11
DayDreamer
10.02.22
✎
15:13
|
ВЫБРАТЬ
ЕСТЬNULL(Таблица1.Товар, Таблица2.Товар) КАК Товар, ЕСТЬNULL(Таблица1.Количество, 0) КАК Количество1, ЕСТЬNULL(Таблица2.Количество, 0) КАК Количество2 ИЗ Таблица1 КАК Таблица1 ПОЛНОЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО Таблица1.Товар = Таблица2.Товар ГДЕ Таблица1.Количество ЕСТЬ NULL или Таблица2.Количество ЕСТЬ NULL |
|||
12
Dmitry_FFF
10.02.22
✎
15:14
|
(10) Не сработает
|
|||
13
Dmitry_FFF
10.02.22
✎
15:14
|
(12) Не попадут строки разным количеством
|
|||
14
1Садовник
10.02.22
✎
15:17
|
(12)
Товар Количество1 Количество2 Тов2 0 6 Тов3 6 0 Тов5 6 2 |
|||
15
Dmitry_FFF
10.02.22
✎
15:27
|
(14) У меня сработало только вот так
ГДЕ ЕстьNULL(Таблица1.Количество, 0)=0 или ЕстьNULL(Таблица2.Количество, 0)=0 или Таблица1.Количество<>Таблица2.Количество |
|||
16
DayDreamer
10.02.22
✎
15:32
|
ВЫБРАТЬ
ЕСТЬNULL(Таблица1.Товар, Таблица2.Товар) КАК Товар, ЕСТЬNULL(Таблица1.Количество, 0) КАК Количество1, ЕСТЬNULL(Таблица2.Количество, 0) КАК Количество2 ИЗ Таблица1 КАК Таблица1 ПОЛНОЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО (Таблица1.Товар = Таблица2.Товар) И (Таблица1.Количество <> Таблица2.Количество) ГДЕ (Таблица1.Количество ЕСТЬ NULL ИЛИ Таблица2.Количество ЕСТЬ NULL) |
|||
17
DayDreamer
10.02.22
✎
15:33
|
ВЫБРАТЬ
ЕСТЬNULL(Таблица1.Товар, Таблица2.Товар) КАК Товар, ЕСТЬNULL(Таблица1.Количество, 0) КАК Количество1, ЕСТЬNULL(Таблица2.Количество, 0) КАК Количество2 ИЗ Таблица1 КАК Таблица1 ПОЛНОЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО (Таблица1.Товар = Таблица2.Товар) И (Таблица1.Количество = Таблица2.Количество) ГДЕ (Таблица1.Количество ЕСТЬ NULL ИЛИ Таблица2.Количество ЕСТЬ NULL) да что ж такое то ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |