0

我有以下查询,它适用于 MySQL,但拒绝适用于 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 Server 似乎不喜欢子查询中的别名。有人告诉我我需要使用 CTE,但我以前从未使用过它们。它是否正确?

4

1 回答 1

3

问题很可能在于子查询中的混乱

SELECT COUNT(someField) FROM table1 WHERE someField = theField

条件将someField是本地的 - 但你可以得到table1.someField同样的结果。

怎么样

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

?

于 2009-01-07T18:18:13.827 回答