Имя: Пароль:
1C
 
Присоветуйте как сделать запрос
,
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)

да что ж такое то )
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс