将两个查询合并为一个

问题描述 投票:0回答:2

在访问中-我想显示一个查询,它为用户提供这两个查询的结果,因此查询结果为状态,CountOfSP,CountOfUsers

当前要获取信息,我们运行两个单独的查询

Select State, Count(userID) As CountOfUsers
From SalesData
Group By State
Order By State;

然后我们的第二个查询是

Select [%$##_Alias].State, Count(salesPerson) As CountOfSalesPerson
From 
(
  Select distinct salesPerson, State
  From salesData
) AS [%$##@_Alias]
Group By [%$##@_Alias].State

Access sql中是否有一种方法可以组合这两个查询,以便我可以从一个查询中获取所有我需要的数据?

编辑我尝试了这种语法,但是它给了我很大的数字,并且CountOfUsers和CountOfSalesPerson的计数完全相同

SELECT salesData.State, Count(salesData.userID) AS CountOfUsers, C 
ount(Regioninfo.salesPerson) AS CountOfSalesPerson
FROM salesData 
LEFT JOIN 
(
    Select distinct salesPerson, State
    From salesData
    group by Region, salesPerson
)  AS Regioninfo ON salesData.State = Regioninfo.State
GROUP BY salesData.State

ORDER BY salesData.State;

sql ms-access ms-access-2016
2个回答
1
投票
您可以像这样加入他们:

Select State, Count(userID) As CountOfUsers, Count(stateinfo.salesPerson) As CountOfSalesPerson From SalesData left join ( Select distinct salesPerson, State From salesData group by state ) AS stateinfo on statedata.state = stateinfo.state Group By Region Order By Region;


-1
投票
;with t as ( Select [%$##_Alias].State, Count(salesPerson) As CountOfSalesPerson From ( Select distinct salesPerson, State From salesData ) AS [%$##@_Alias] Group By [%$##@_Alias].State ) Select State, Count(userID) As CountOfUsers, t.CountOfSalesPerson From SalesData s left join t on t.state = s.state Group By Region Order By Region;
© www.soinside.com 2019 - 2024. All rights reserved.