Неверное значение из SQL SUM двух столбцов в разных таблицах - PullRequest
0 голосов
/ 07 сентября 2018

Этот SQL-запрос MS Access не возвращает правильное значение. Я пытаюсь суммировать комиссию из таблиц TransactionBuy и TransactionSell между двумя датами, введенными в форму. Однако результат неверен.

SELECT (Sum([TransactionBuy].[Commission])+Sum([TransactionSell].[Commission])) AS Total
FROM TransactionBuy, TransactionSell
WHERE (TransactionBuy.DateTime Between Forms![AT - frmCommission]![txtStart]
And  Forms![AT - frmCommission]![txtEnd]) 
AND (TransactionSell.DateTime Between Forms! [AT - frmCommission]![txtStart] 
And  Forms![AT - frmCommission]![txtEnd]);

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Попробуйте выполнить агрегацию перед выполнением JOIN:

SELECT ts.Commission + tb..[Commission] AS Total
FROM (SELECT Sum([TransactionBuy].[Commission]) as commission
      FROM TransactionBuy
      WHERE TransactionBuy.DateTime Between Forms![AT - frmCommission]![txtStart] And  Forms![AT - frmCommission]![txtEnd]
     ) as tb,
     (SELECT Sum([TransactionSell].[Commission]) as commission
      FROM TransactionSell
      WHERE TransactionSell.DateTime Between Forms! [AT - frmCommission]![txtStart] And  Forms![AT - frmCommission]![txtEnd]
    ) ts;
0 голосов
/ 07 сентября 2018

Это имеет больше смысла. Принято ли это Access?

SELECT SUM(Commission) as Total
FROM (
SELECT [TransactionBuy].[Commission])
FROM TransactionBuy, 
WHERE (TransactionBuy.DateTime Between Forms![AT - frmCommission]![txtStart]
And  Forms![AT - frmCommission]![txtEnd]) 

UNION ALL

SELECT [TransactionSell].[Commission]
FROM TransactionSell
WHERE (TransactionSell.DateTime Between Forms! [AT - frmCommission]![txtStart] 
And  Forms![AT - frmCommission]![txtEnd])
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...