2014-10-27 120 views
1

我有两张表与政治结果连接在一起,我需要每个县的票数为SUM,然后每个县的票数为MAX,与涉及另一列中的MAX。我无法让派对进入查询结果而没有搞乱SUM和MAX列。在ACCESS查询中显示MAX的相关属性

这表我可以用下面的SQL

 
County Name SumOfVoteCount MaxOfVoteCount OfficeID 
Baker     7253  4008     S 
SELECT NY_Race.[County Name], Sum(NY_Results.VoteCount) AS SumOfVoteCount, Max(NY_Results.VoteCount) AS MaxOfVoteCount 
FROM NY_Race INNER JOIN NY_Results ON NY_Race.RaceCountyID = NY_Results.RaceCountyID 
GROUP BY NY_Race.[County Name], NY_Race.OfficeID 
HAVING (((NY_Race.OfficeID)="S")); 

我需要的是为有4008票总要包含在查询结果的党得到的,但是当我尝试选择要加入党,它显示了所有的人,并打乱了计票的总和,和我结束与此:

 
County Name  SumOfVoteCount MaxOfVoteCount1 Party OfficeID 
Baker      2927 2927    Dem  S 
Baker      4008 4008    GOP  S 
Baker      101 101    Lib  S 
Baker       53  53    Prg  S 
Baker      164 164    WF  S 

这是我使用的是得到上表的SQL代码:

SELECT NY_Race.[County Name], Sum(NY_Results.VoteCount) AS SumOfVoteCount, Max(NY_Results.VoteCount) AS MaxOfVoteCount, NY_Results.Party 
FROM NY_Race INNER JOIN NY_Results ON NY_Race.RaceCountyID = NY_Results.RaceCountyID 
GROUP BY NY_Race.[County Name], NY_Race.OfficeID, NY_Results.Party 
HAVING (((OR_Race.OfficeID)="S")); 

如何在查询结果中获取此表?

 
County Name  SumOfVoteCount MaxOfVoteCount  Party OfficeID 
Baker     7253  4008    GOP  S 

我不禁觉得我缺少一个WHERE圣诞老人的地方,比较党MAXofVoteCount接近这些

+0

我编辑了这个问题,使它更容易阅读。我可以看到俄勒冈州的前缀“OR”令人困惑,所以我将它改为NY。该查询也没有涉及其中一个表,所以我把这个表加入查询。 – 2014-10-27 20:11:10

回答

0

一种方法是有一个嵌套子查询获取MAX()为兴趣领域。然后,只选择那个MAX()的记录。这里的结构:

select COUNTY_NAME, R1.* 
, (select sum(votecount) from results R2 where R1.COUNTY_ID=R2.COUNTY_ID and R1.OFFICE_ID=R2.OFFICE_ID) 
from RESULTS R1 
join RACE on R1.COUNTY_ID=RACE.COUNTY_ID and R1.OFFICE_ID=RACE.OFFICE_ID 
where R1.office_id = 'S' 
and voteCount = 
(select max(votecount) from results R3 where R1.COUNTY_ID=R3.COUNTY_ID and R1.OFFICE_ID=R3.OFFICE_ID) 

我创建了a demo on SQLFiddle

一个问题:如果两个得到完全相同的选票数量会怎样。这是一个需要解决的功能问题。

+0

感谢您看看这个问题。我可以看到结果如何与一张表一起工作,但我没有看到与您的RACE表发生联接。换句话说,我如何才能在查询结果中显示您的RACE表中的属性County_Name? – 2014-10-27 19:58:47

+0

只需加入RACE。我保持简单的查询来说明这个概念。我现在编辑它来添加连接:检查上面的答案。 – 2014-10-27 20:34:01

+0

好的,你让我开始使用SQL来显示与每个郡的投票数MAX记录相关的属性。但是,这给我带来了麻烦,包括一个按县划分的投票总数的字段。在你的例子中,需要有一个SumofVoteCount字段,这将显示Baker County拥有3,160张总票数,而渥太华拥有6,000张总票数。 – 2014-10-27 21:33:48