thank you.
You have right: I don't understand. 
I tried this version, but I have error in subquery:
Code:
[Err] 42000 - [SQL Server] Column 'SubQs.MAT' is invalid in the select
list because it is not contained in either an aggregate function
or the GROUP BY clause.
With add DISTINCT I have this output without Total:
Code:
Q MAT NUMBER
1F MOL 103623
1D LIP 69119
Can you help me?
Thanks in advance
Code:
SELECT
strTZZ AS Q,
COALESCE ([MAT], 'Tot') AS [MAT],
NUMBER
FROM
(
SELECT DISTINCT
LEFT (TZZ, 2) AS strTZZ,
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 (TZZ, 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 SubQs
WHERE
1 = 1
AND (strTZZ = '1D' OR strTZZ = '1F')
GROUP BY
ROLLUP (
CASE
WHEN LEFT (strTZZ, 2) = '1D' THEN
'LIP'
WHEN LEFT (strTZZ, 2) = '1F' THEN
'MOL'
WHEN LEFT (strTZZ, 2) = '1G' THEN
'IRT'
WHEN LEFT (strTZZ, 2) = '1H' THEN
'MRE'
WHEN LEFT (strTZZ, 2) = '1I' THEN
'UOT'
WHEN LEFT (strTZZ, 2) = '1M' THEN
'MAL'
WHEN LEFT (strTZZ, 2) = '1S' THEN
'RAS'
WHEN LEFT (strTZZ, 2) = '1O' THEN
'PMC'
WHEN LEFT (strTZZ, 2) = '1P' THEN
'BUP'
WHEN LEFT (strTZZ, 2) = '1Q' THEN
'LAC'
ELSE
'CIS'
END
)
Bookmarks