mam to proste zapytanie:Grupa warunkowa na serwerze sql?
SELECT YEAR(P.DateCreated)
,MONTH(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
MONTH(P.DateCreated)
,YEAR(P.DateCreated)
będzie emitował:
teraz muszę tego samego zapytania, ale z GroupBy tylko rocznie:
tak:
SELECT YEAR(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
YEAR(P.DateCreated)
i dont chcesz wykonać 2 zapytania.
czy jest jakiś sposób, abym mógł zrobić to pod pojęciem group by
tutaj?
mogę zrobić z jeden zostaje zastąpiony przez innego, ale cant zrobić jeden zastąpione przez dwa ...
GROUP BY
CASE WHEN @timeMode='y' THEN YEAR(P.DateCreated)
WHEN @timeMode='m' THEN MONTH(P.DateCreated), YEAR(P.DateCreated) end
pomocy?
jeśli dostarczam @ timeMode = "y", więc zapytanie będzie zawierało ',' na końcu .... error? –
, więc muszę zacząć od _smallest_ grupy według jednostki, a następnie rozwinąć ją przez przypadek .... riught? –
Nie jesteś pewien, o co pytasz. 'CASE' może zwrócić tylko jedno wyrażenie. To odpowiada na pytanie, które faktycznie zadałeś. –