Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 SQL Server Development (2000)
 group by for dynamic column

Author  Topic 

noamg
Posting Yak Master

215 Posts

Posted - 2005-02-14 : 04:24:10
I need the following idea, how to do without dynamic-sql ?

SELECT Status,
'SortField'=CASE
WHEN @Type = 1 THEN enumI WHEN @Type = 2 THEN enumM
WHEN @Type = 3 THEN enumP
END,
'EXPR1' = CASE
WHEN @Type = 1 THEN COUNT( enumI )
WHEN @Type = 2 THEN COUNT( enumM )
WHEN @Type = 3 THEN COUNT( enumP )
END
FROM Reports R
LEFT OUTER JOIN ReportsDetails RD
ON RD.ReportID = R.ReportID
GROUP BY RD.Status, SortField

thamks

Noam Graizer

madhivanan
Premature Yak Congratulator

22864 Posts

Posted - 2005-02-14 : 05:58:49

What does @type refer to?

Madhivanan
Go to Top of Page

LarsG
Constraint Violating Yak Guru

284 Posts

Posted - 2005-02-14 : 07:35:56
Repeat the case expression in the group by clause.


SELECT Status,
CASE
WHEN @Type = 1 THEN enumI
WHEN @Type = 2 THEN enumM
WHEN @Type = 3 THEN enumP
END as sortField,
CASE
WHEN @Type = 1 THEN COUNT( enumI )
WHEN @Type = 2 THEN COUNT( enumM )
WHEN @Type = 3 THEN COUNT( enumP )
END as expr1
FROM Reports R
LEFT OUTER JOIN ReportsDetails RD
ON RD.ReportID = R.ReportID
GROUP BY RD.Status, CASE
WHEN @Type = 1 THEN enumI WHEN @Type = 2 THEN enumM
WHEN @Type = 3 THEN enumP end
Go to Top of Page
   

- Advertisement -