此MS Access SQL查询未返回正确的值。我正在尝试对表单上输入的两个日期之间的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]);
答案 0 :(得分:0)
这更有意义。 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])
)
答案 1 :(得分:0)
在进行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;