2015-09-04 102 views
0

嗨我想创建一个查询,可以给我几个公司之间表现最好的程序。访问2010性能查询

我有一张桌子上有几家公司,程序中有几家公司有一个程序,其他人没有,所以我知道那些将是最好的表现。我想要一个查询来举例说明。

CompanyTwo,方案一,12.85%
CompanyOne,方案二,12.56%
CompanyTwo,方案三,1%

.....等等...

表看起来像这样。

公司名称,ProgramName中,PerformancePercentage,ProgramYear
CompanyOne,方案一,10.04%,2015年
CompanyOne,方案二,12.56%,2015年
CompanyTwo,方案一,12.85%,2015年
CompanyTwo,方案二,9.5%,2015年
CompanyTwo,方案三,1%,2015年

+0

我尝试了总计查询,但我不能获取正常工作。如果我删除公司名称并将百分比字段设置为最大值,它会向我显示哪些程序执行得最好,但我不知道哪个公司负责正在执行的程序。 – Bill

回答

0

您的查询是有点复杂,要求要么2个查询或相关子查询。下面我提供了后者。

SELECT BestPerfByProg.program, Table1.company, BestPerfByProg.BestPerf 
FROM Table1 
INNER JOIN (SELECT Table1.program, Max(Table1.Performance) AS BestPerf 
      FROM Table1 
      WHERE table1.period = 2015 
      GROUP BY Table1.program 
      ) AS BestPerfByProg ON (Table1.program = BestPerfByProg.program) 
           AND (Table1.Performance = BestPerfByProg.BestPerf) 
ORDER BY BestPerfByProg.program; 

如果要让它在2枚,这是()之间的部分开始,并保存为BestPerfByProg

+0

我需要表现最佳的节目和那些在这些节目中表现最出色的公司。在这28个项目中,我们有28个项目和16个公司想知道哪些公司做得最好。希望是,我们可以找出为什么该公司在该计划上做得更好。所有16家公司参加了28个项目。 – Bill

+0

我想它并不是顶尖的课程,我需要知道哪个公司在28个项目中表现最出色,所以我想要一个列出所有28个项目的比例最高的公司和哪个公司是成功的。我不应该说顶部。 – Bill