【发布时间】:2014-02-04 19:00:44
【问题描述】:
这个查询给我带来了我想要的结果。那太好了!
select rc.[race number],
max(case when seqnum = 1 then [candidate num] end) as Winner,
max(case when seqnum = 1 then Votes end) as WinningVotes,
max(case when seqnum = 1 then party end) as WinningParty,
max(case when seqnum = 1 then leader end) as Winner1,
max(case when seqnum = 1 then winner end) as WinnerSelected,
max(case when seqnum = 1 then [leader percent] end) as WinnerPercent,
max(case when seqnum = 2 then [candidate num] end) as Loser,
max(case when seqnum = 2 then Votes end) as LosingVotes,
max(case when seqnum = 2 then party end) as LosingParty,
max(case when seqnum = 2 then leader2 end) as Loser2,
max(case when seqnum = 2 then [leader2 percent] end) as LoserPercent,
max(case when seqnum = 2 then winner end) as LoserSelected
from
(
select rc.[race number],
rc.[candidate num],
rc.[Votes],
rc.[winner],
c.[party],
r.[leader],
r.[leader percent],
r.[leader2],
r.[leader2 percent],
row_number() over (partition by rc.[race number] order by votes desc) as seqnum
from dbo.[RACE CANDIDATES] rc
inner join dbo.[CANDIDATE] c on rc.[candidate num] = c.[candidate number]
inner join dbo.[RACE] r
on rc.[race number] = r.[race number]
) rc
group by rc.[race number]
我现在遇到的问题是我需要在查询中包含的 RACE 表中有一个 title1 字段。我无法绑定该多部分标识符。这就是我在论坛上的全部寻找和破坏的开始。
每场比赛都有一个头衔和 2 名候选人。我试图将两个候选人和领先数据放入一个行集中。现在,我唯一缺少的是 title1 字段!啊啊啊!它永远不会结束。
我认为我不能在 max(case select 中使用它,因为它肯定会重复比赛编号。
我希望这是有道理的。很抱歉在论坛上浪费了这么多带宽。
【问题讨论】:
标签: sql-server multiple-columns