0
我不是一个说到子查询的人。我试图让下面的SQL脚本给出正确的结果,并且我做错了什么,或者我误解了结果。这是我的SQL。寻找SQL来做一个子查询的总和
select Horizontal Horizontal, sum(headcount) Headcount,
sum(fte) FTE, BE, Street, City, State, Zip, Country,
SQ_FT, O_L, Comp_Code, Entity
FROM
(SELECT t.Horizontal Horizontal,
COUNT(d.SIGNEDAU) Headcount,
COUNT(d.SIGNEDAU) * t.[AU Distribution to Services] FTE,
a.[BE #] BE, d.ADDRESSLINE1 Street, d.CITY,
d.STATE, d.ZIP, d.COUNTRY,
a.FT2 SQ_FT, a.[O/L] O_L, a.[Comp Code], a.ENTITY
FROM dbo.HR_Data d
join dbo.Service_Taxonomy t
ON d.SIGNEDAU = t.[AU Code]
left join dbo.All_Active a
ON d.CITY = a.City
AND d.STATE = a.ST
AND d.ADDRESSLINE1 = a.Street
GROUP BY d.SIGNEDAU, t.[AU Distribution to Services],
a.[BE #], a.FT2, a.[O/L], a.[Comp Code],
a.ENTITY, t.[Critical Y/N], t.Horizontal, t.[Level 1],
d.ADDRESSLINE1, d.CITY, d.STATE, d.COUNTRY, d.ZIP,
d.HR_STATUS, d.EMPLOYEESTATUS
HAVING d.HR_STATUS = N'A' and d.EMPLOYEESTATUS = N'A') sub
Group by Horizontal, FTE, BE, Street,
City, State, Zip, Country, SQ_FT,
O_L, Comp_Code, Entity
我希望员工人数和FTE的总和,与本集团通过,这两个行合并成一个,并产生总人数共10和FTE共有5。有些原因,我不完全明白,上面的SQL似乎不是总结而是分组。有人能帮我理清这个吗?我必须错过简单的东西,但我不知道是什么。提前致谢!
您粘贴您的查询的输出的屏幕截图,但它并没有显示超出国家列。你能否提供更好的屏幕截图,其中还包括SQ_FT,O_L,Comp_Code,Entity?这些列中的行可能不同。 –
我会提到的有关子查询的一件事(除非它们是相关的,而不是你的),那就是将每个子查询看作它自己的不同表格。换句话说,一旦你写了一个子查询,忘记了它的所有实现细节,并将其视为它自己独特的关系。然后,针对子查询执行聚合就像其他任何操作一样。如果你的子查询没有提供正确的“起始材料”,重写它直到它。然后,再次忘记它的实现,并编写外部聚合。 – Xedni
如果你可以发布一些样本数据和预期结果,我们将更容易帮助你 – Squirrel