Hola luisbarral22:
Si bien la sintaxis entre MySQL y SQL Server es parecida, también tiene diferencias muy significativas.
En MySQL como lo mencionas, te permite agrupar sólo por un campo, aunque en el SELECT utilices más. En SQL Server, la cláusula GROUP BY debe contener TODOS AQUELLOS CAMPOS QUE APARECEN EN EL SELECT Y QUE NO ESTÉN CONTENIDOS EN UNA FUNCIÓN DE AGRUPACIÓN. Al margen de lo que comenta samardj de listar los campos en lugar de poner *, la explicación del error se ve más clara con esto:
Código:
SELECT COUNT(campo) FROM tabla
--> es correcto, pues sólo utilizas una función de agrupación
SELECT COUNT(campo) FROM tabla GROUP BY campo
--> es correcto, pues sólo utilizas una función de agrupación,
el grupo lo haces sólo por un campo.
SELECT campo, COUNT(campo) FROM tabla
--> ERROR, al utilizar campo en el SELECT sepadado junto alguna función
de agrupación DEBES COLOCARLO TAMBIÉN EN EL GROUP BY
SELECT campo, COUNT(campo) FROM tabla GROUP BY campo
--> es correcto, LOS CAMPOS QUE NO FORMAN PARTE DE ALGUNA FUNCIÓN
DE AGRUPACIÓN DEBEN APARECER EN TU GROUP BY.
SELECT campo, campo2, COUNT(campo) FROM tabla GROUP BY campo
-->ERROR, este sería más o menos tu caso, el campo2 NO APARECE EN
LA FUNCIÓN GROUP BY, de ahí el error.
SELECT campo, campo2, COUNT(campo) FROM tabla GROUP BY campo, campo2
-->Correcto, te repito, TODOS LOS CAMPOS QUE SE LISTEN EN EL SELECT Y
QUE NO ESTÉN DENTRO DE UNA FUNCIÓN DE AGRUPACIÓN SE DEBEN
CONSIDERAR EN EL GROUP BY.
Saludos
Leo.