2010-02-22 63 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