質問

次のクエリは、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を使用する必要があると言われましたが、CTEを使用したことがありません。これは正しいですか?

役に立ちましたか?

解決

問題は、サブクエリの混乱にある可能性があります

SELECT COUNT(someField) FROM table1 WHERE someField = theField
条件内の

someField はローカルになりますが、同じように table1.someField に到達できます。

方法について

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top