Pregunta

Tengo la siguiente consulta que funciona bien con MySQL pero se niega a trabajar con el servidor 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

A SQL Server no parece gustarle el alias en la subconsulta. Me han dicho que necesito usar un CTE pero nunca los he usado antes. ¿Es esto correcto?

¿Fue útil?

Solución

El problema bien podría estar en la confusión en la subconsulta

SELECT COUNT(someField) FROM table1 WHERE someField = theField

el someField en la condición será local, pero puede llegar a table1.someField exactamente igual.

¿Qué tal

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

?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top