SQL Server - GROUP BY clause
Hi there, I need your help.
Here is my problem.
I tried this query in dbms SQL Server 2008 and I have this output:
I need this:
Can you help me?
Thanks in advance.
Hi there, I need your help.
Here is my problem.
I tried this query in dbms SQL Server 2008 and I have this output:
Code:
Q MAT NUMBER
1F MOL 103623
1F MOL 103623
1D LIP 69119
1D LIP 69119
Code:
Q MAT NUMBER
1F MOL 103623
1D LIP 69119
Tot 172742
Thanks in advance.
Code:
SELECT
strDTZZ AS Q,
COALESCE ([MAT], 'Tot') AS [MAT],
NUMBER
FROM
(
SELECT
LEFT (DTZZ, 2) AS strDTZZ,
CASE
WHEN LEFT (TZZ, 2) = '1D' THEN
'LIP'
WHEN LEFT (TZZ, 2) = '1F' THEN
'MOL'
WHEN LEFT (TZZ, 2) = '1G' THEN
'IRT'
WHEN LEFT (TZZ, 2) = '1H' THEN
'MRE'
WHEN LEFT (TZZ, 2) = '1I' THEN
'UOT'
WHEN LEFT (TZZ, 2) = '1M' THEN
'MAL'
WHEN LEFT (TZZ, 2) = '1S' THEN
'RAS'
WHEN LEFT (TZZ, 2) = '1O' THEN
'PMC'
WHEN LEFT (TZZ, 2) = '1P' THEN
'BUP'
WHEN LEFT (TZZ, 2) = '1Q' THEN
'LAC'
ELSE
'CIS'
END AS MAT,
COUNT (*) AS NUMBER,
FROM
dbo_40
GROUP BY
ROLLUP ( LEFT (DTZZ, 2),
CASE
WHEN LEFT (TZZ, 2) = '1D' THEN
'LIP'
WHEN LEFT (TZZ, 2) = '1F' THEN
'MOL'
WHEN LEFT (TZZ, 2) = '1G' THEN
'IRT'
WHEN LEFT (TZZ, 2) = '1H' THEN
'MRE'
WHEN LEFT (TZZ, 2) = '1I' THEN
'UOT'
WHEN LEFT (TZZ, 2) = '1M' THEN
'MAL'
WHEN LEFT (TZZ, 2) = '1S' THEN
'RAS'
WHEN LEFT (TZZ, 2) = '1O' THEN
'PMC'
WHEN LEFT (TZZ, 2) = '1P' THEN
'BUP'
WHEN LEFT (TZZ, 2) = '1Q' THEN
'LAC'
ELSE
'CIS'
END
)
) AS SubQ
WHERE
1 = 1
AND (strDTZZ = '1D' OR strDTZZ = '1F');