i có truy vấn này rất đơn giản:Nhóm điều kiện theo máy chủ sql?
SELECT YEAR(P.DateCreated)
,MONTH(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
MONTH(P.DateCreated)
,YEAR(P.DateCreated)
này sẽ phát ra:
bây giờ tôi cần phải truy vấn tương tự nhưng với groupby chỉ mỗi năm:
vậy:
SELECT YEAR(P.DateCreated)
,COUNT(*) AS cnt
FROM tbl1,
tbl2....
GROUP BY
YEAR(P.DateCreated)
i không muốn thực hiện 2 truy vấn.
có cách nào để tôi có thể thực hiện điều kiện group by
tại đây không?
tôi có thể làm gì với một được thay thế bằng khác, nhưng tôi không thể làm một được thay thế bằng hai ...
GROUP BY
CASE WHEN @timeMode='y' THEN YEAR(P.DateCreated)
WHEN @timeMode='m' THEN MONTH(P.DateCreated), YEAR(P.DateCreated) end
bất kỳ sự giúp đỡ?
nếu tôi cung cấp @ timeMode = 'y' để truy vấn sẽ có ',' ở cuối .... lỗi? –
vì vậy tôi phải bắt đầu từ nhóm _smallest_ theo đơn vị và mở rộng theo trường hợp .... riught? –
Không chắc chắn những gì bạn đang yêu cầu. 'CASE' chỉ có thể trả về một biểu thức duy nhất. Điều này trả lời câu hỏi bạn thực sự hỏi. –