Ho questa semplice query:Gruppo condizionale per in SQL Server?
SELECT YEAR(P.DateCreated)
,MONTH(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
MONTH(P.DateCreated)
,YEAR(P.DateCreated)
questo emetterà:
ora ho bisogno la stessa query, ma con groupby solo all'anno:
così:
SELECT YEAR(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
YEAR(P.DateCreated)
i non desidera effettuare 2 query.
c'è un modo che posso fare con conteggio qui?
posso fare con un essere sostituito da un altro, ma io non posso fare uno è sostituito da due ...
GROUP BY
CASE WHEN @timeMode='y' THEN YEAR(P.DateCreated)
WHEN @timeMode='m' THEN MONTH(P.DateCreated), YEAR(P.DateCreated) end
alcun aiuto?
se fornisco @ timeMode = 'y' quindi la query avrà ',' alla fine .... errore? –
quindi devo iniziare da _smallest_ group per unità e poi espanderlo per caso .... riught? –
Non sei sicuro di cosa stai chiedendo. 'CASE' può restituire solo una singola espressione. Questo risponde alla domanda che hai effettivamente chiesto. –