2009-01-07 51 views
0

我有以下查詢的正常工作與MySQL,但拒絕與SQL服務器的工作:SQL服務器 - 在子查詢中使用列別名

SELECT table1.someField AS theField, 
     COUNT(table2.someField)/(SELECT COUNT(someField) FROM table1 WHERE someField = theField), 
FROM table1 LEFT JOIN table2 ON table1.someField = table2.someField 

SQL服務器似乎並不喜歡在別名子查詢。我被告知我需要使用CTE,但我從未使用過它們。它是否正確?

回答

3

的問題很可能是在混亂中的子查詢

SELECT COUNT(someField) FROM table1 WHERE someField = theField 

的條件將是本地的someField - 但你可以得到table1.someField一樣。

如何

SELECT COUNT(t3.someField) FROM table1 t3 WHERE t3.someField = table1.someField