尝试将多个查询用作单独的报告和数据源。
假设您的表格如下所示...
tblSurveys:
employeeid score
---------- -----
1 10
2 3
2 2
3 7
etc...
tblEmployees:
employeeid EmployeeName SupervisorId
---------- ------------- ------------
1 Employee 1 1
etc...
tblSupervisors:
SuperVisorId SuperVisorName RegManagerId
------------ -------------- -------------
1 Super 1 1
2 Super 2 1
etc...
tblRegManagers:
RegManagerId RegManagerName
------------- -----------------
1 Regional Manager 1
2 Regional Manager 2
etc...
您也许可以创建多用途查询。请参阅下面的 SQL...
查询 1:这将为您提供员工统计信息
select SupervisorName,RegManagerId,EmployeeName,
Promoter,Detractor,surveys,Promoter-Detractor AS score,
(Promoter-Detractor)/surveys as result
from
(
select a.EmployeeName,b.SupervisorName, b.RegManagerId,
(select count(*) from tblSurveys where
employeeid=a.employeeid and score<7) as Detractor,
(select count(*) from tblSurveys where
employeeid=a.employeeid and score>6) as Promoter,
(select count(*) from tblSurveys where employeeid=a.employeeid) as surveys
from tblEmployees a left join tblSupervisors b on a.supervisorid=b.supervisorid
)
Query2:这为您提供主管统计信息,但也使用员工统计信息 (Query1)
select supervisorname,RegManagerId,
promotersum, detractorsum, surveyssum,(promotersum-detractorsum)/surveyssum
from
(select SuperVisorName,RegManagerId, sum(Promoter) as PromoterSum,
sum(Detractor) as DetractorSum,
sum(surveys) as surveyssum from query1 group by SuperVisorName,RegManagerId )
Query3:这为您提供区域经理统计信息,但也使用主管统计信息 (Query2)
select RegManagerName, promoter_cnt, detractor_cnt, survey_cnt, promoter_cnt-detractor_cnt as score,
(promoter_cnt-detractor_cnt)/survey_cnt as result
from
(select a.RegManagerName, b.RegManagerId, sum(b.promotersum) as promoter_cnt,
sum(b.detractorsum) as detractor_cnt, sum(b.surveyssum) as survey_cnt
from tblRegManagers a left join query2 b on a.RegManagerId=b.RegManagerId
group by a.RegManagerName, b.RegManagerId)
因此,虽然每个查询本身都用作报告,但前两个用作源查询。