我有两个表 - Sales(ID,Staff_Name,Sale_Date,Amount),Expense(ID,Expense_Name,Expense_Date,Amount)
问题是在给定日期的两列中显示销售额和费用的总和。
以下代码适用于Oracle SQL:
select sum(distinct sales.amount),sum(distinct expense.amount) from sales,expense where sales.sale_date='06-dec-1996' and expense.expense_date='06-dec-1996';
但是由于MS Access不支持聚合函数内部的不同,我尝试了这个(有效):
SELECT Sum(Sales.amount) FROM (SELECT DISTINCT Sales.amount FROM Sales);
但我无法开始工作我真正需要的东西。我怎么能在MS Access中做到这一点?
答案 0 :(得分:1)
使用子查询:
select (select sum(sales.amount)
from sales
where sales.sale_date = '06-dec-1996'
),
(select sum(expense.amount)
from expense
where expense.expense_date = '06-dec-1996'
)
from (select count(*) from sales) as s;
注意:
from
子句仅仅是因为MS Access需要某些内容而不支持dual
之类的内容。sales.amount
值或相同的expense.amount
值,该怎么办?你的总数不正确。FROM
子句中使用逗号; 始终使用显式JOIN
语法。