2010-02-22 60 views
0

我有一个sql问题与子列名im中的列名称即时通讯猜测它的,因为它尚未被分配该名称,但我不知道如何重新排列它。Subselect列无效的问题

select Distinct Captains.Name, Captains.Team, (select count(Winners.Name) from (select HomeTeamCaptain As Name from fixture where fixture.HomeTeamCaptain = Captains.Name And fixture.matchResult = fixture.HomeTeam UNION ALL select AwayTeamCaptain As Name from fixture where fixture.AwayTeamCaptain = Captains.Name And fixture.matchResult = fixture.AwayTeam) As Winners) As Winners From (select fixture.HomeTeamCaptain As Name, HomeTeam As Team From fixture UNION ALL select fixture.AwayTeamCaptain As Name, AwayTeam As Team From fixture) As Captains order by Name; 

“Captains.Name”是我需要它运行Count - Subselect但不能获得其值的问题!

+0

嗨史蒂夫,请添加一些换行符,这是不可读的。 – 2010-02-22 12:55:56

回答

2

这个工作对我来说:

select distinct Captains.Name, Captains.Team, 
    (select count(*) 
    from fixture 
    where 
     --I changed this a bit 
     (fixture.HomeTeamCaptain = Captains.Name And 
     fixture.matchResult = fixture.HomeTeam) 
    OR 
     (fixture.AwayTeamCaptain = Captains.Name And 
     fixture.matchResult = fixture.AwayTeam) 
    ) As Winners 

FROM (select fixture.HomeTeamCaptain As Name, HomeTeam As Team 
    from fixture 
    UNION ALL 
    select fixture.AwayTeamCaptain As Name, AwayTeam As Team 
    from fixture) AS Captains 
order by Captains.Name; 

你应该考虑由一个ID创建一个Captains表和参考“家”和“离开”的队长。

+0

谢谢我过于复杂,我看到我现在要去哪里错了!甜! – Steve 2010-02-22 18:06:49