SQL: сравнение 2 таблиц и возврат всех несоответствующих записей - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть 2 таблицы, ордера и строки ордеров, связанные с ключом orderID.Записи заказов состоят из разных продаж / единичных сумм и заносятся в таблицу строк заказов как отдельные записи.(пример показан ниже)

Multiple orderlines records total to one orders record

Я хочу иметь возможность сделать запрос, который проверяет / проверяет, что значения продаж / единиц в таблице заказов соответствуют сумместроки заказа для этого определенного productID и возвращает идентификаторы orderID с несоответствиями в итогах продаж / единиц.

Пока у меня есть следующий запрос, но я получаю код ошибки 1111 или 1248.

Code sample

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 25 сентября 2019

Вы неправильно агрегируете строки таблицы.Вы сравниваете суммы, не возвращая их из запроса.Попробуйте это:

select o.orderid
from orders o inner join (
  select orderid, sum(sales) sumsales, sum(units) sumunits
  from orderlines
  group by orderid 
) s on s.orderid = o.orderid
where s.sumsales <> o.sales or s.sumunits <> o.units
...