tengo esta consulta sencilla:¿Grupo condicional por servidor sql?
SELECT YEAR(P.DateCreated)
,MONTH(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
MONTH(P.DateCreated)
,YEAR(P.DateCreated)
este emitirá:
ahora tengo la misma consulta pero con GroupBy única por año:
manera:
SELECT YEAR(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
YEAR(P.DateCreated)
i no haga desea hacer 2 consultas.
¿Hay alguna manera que yo pueda hacer conitional group by
aquí?
puedo hacer con que está siendo reemplazado por otro, pero no puede hacer que está siendo reemplazado por dos ...
GROUP BY
CASE WHEN @timeMode='y' THEN YEAR(P.DateCreated)
WHEN @timeMode='m' THEN MONTH(P.DateCreated), YEAR(P.DateCreated) end
ayuda?
si proporciono @ timeMode = 'y' entonces la consulta tendrá ',' al final ... ¿error? –
entonces debo comenzar desde _smallest_ group por unidad, y luego expandirlo por caso ... ¿riught? –
No estoy seguro de lo que está preguntando. 'CASE' solo puede devolver una sola expresión. Esto responde la pregunta que realmente hizo. –