2012-12-04 39 views
0

我無法創建視圖。下面你可以找到我的代碼。有人能幫助我嗎?錯誤1247(42S22):不支持參考'VITORIAS'(引用組功能)

CREATE VIEW V_Campeonato AS SELECT team.tim_cod_inscri_time 
     , SUM(CASE WHEN partida.par_gol_mand > partida.par_gol_visi THEN 1 ELSE 0 END) AS VITORIAS 
     , SUM(CASE WHEN partida.par_gol_mand = partida.par_gol_visi THEN 1 ELSE 0 END) AS EMPATES 
     , SUM(CASE WHEN partida.par_gol_mand < partida.par_gol_visi THEN 1 ELSE 0 END) AS DERROTAS 
FROM team 
INNER JOIN partida 
ON team.tim_cod_inscri_time = partida.par_cod_partida 
ORDER BY (VITORIAS * 3 + EMPATES) DESC; 

ERROR 1247(42S22):參考 'VITORIAS' 不支持(參考 組功能)

+1

您不能同時「SUM」和「CASE」。我想從你的代碼中輸出1或0,而不是1或0的和。 – Sablefoste

+0

你能替我解釋這段代碼嗎? – vinimenchon

回答

0

這是很難完全理解您在此代碼會什麼。但是,這可能是你所追求的:

SELECT SUM(VITORIAS), SUM(EMPATES), SUM(DERROTAS), tim_cod_inscri_time FROM 

    (SELECT 
    (CASE WHEN partida.par_gol_mand > partida.par_gol_visi THEN 1 ELSE 0 END) AS VITORIAS , 
    (CASE WHEN partida.par_gol_mand = partida.par_gol_visi THEN 1 ELSE 0 END) AS EMPATES , 
    (CASE WHEN partida.par_gol_mand < partida.par_gol_visi THEN 1 ELSE 0 END) AS DERROTAS 
    FROM team INNER JOIN partida ON team.tim_cod_inscri_time = partida.par_cod_partida) 
    AS teamrecord 
    GROUP BY tim_cod_inscri_time 
    ORDER BY (VITORIAS * 3 + EMPATES) DESC; 

我把SUM從內表,並分別總結了勝利。另外,我給了子查詢一個任意的名字,teamrecord。這是你要去的嗎?

+0

你好,我正在從CODE隊中取得勝利,在幾場比賽中擊敗並吸引球隊! – vinimenchon

+0

您是否測試了代碼?結果是什麼? – Sablefoste

+0

你所做的是正確的,來自cod_inscri_time的想要的是什麼,拉動所有的抽籤,失敗和勝利。對團隊的看法!如果你能幫助我,謝謝Sable Fost。 – vinimenchon