Невозможно запросить сумму и сравнить сумму с другой суммой в запросе MySQL - PullRequest
0 голосов
/ 22 октября 2019

Я хочу проверить 2 базы данных, чтобы увидеть, совпадают ли денежные выплаты с общей суммой. Это возможно, но я получаю очень длинную таблицу:

select 
  transaction_id
  ,total_low+total_high a
  , sum(money_received) b 
from 
  archive_transaction inner join archive_transaction_payment 
    on archive_transaction.id=archive_transaction_payment.transaction_id 
group by transaction_id;

На самом деле мне нужны только те транзакции, в которых сумма неверна !! Итак, теперь я хочу добавить a! = B, и это дает неверный запрос. Как продолжить? Таблица archive_transaction имеет 1 строку для каждой транзакции, но archive_transaction_payment может иметь несколько платежей для одной транзакции. Это усложняет для меня.

select 
  transaction_id
  ,total_low+total_high a
  , sum(money_received) b 
from archive_transaction inner join archive_transaction_payment 
       on archive_transaction.id=archive_transaction_payment.transaction_id 
where 
  a!=b 
group by transaction_id;

1 Ответ

0 голосов
/ 23 октября 2019

Объединения все еще проблематичны для меня, но я нашел ответ без объединения, чтобы найти ошибки в базе данных.

SELECT id
FROM   archive_transaction a
WHERE  total_low + total_high != (SELECT Sum(money_received)
                                  FROM   archive_transaction_payment b
                                  WHERE  a.id = b.transaction_id); 

Теперь я получил краткий список проблем в моей базе данных. Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...