Я настраиваю запрос отчета. У меня есть несколько иерархий местоположений, которые мне нужно правильно отображать.
Я пробовал использовать группировку, но не могу получить то, что мне нужно.
Это мой пример данных.
TblValues
Branch BranchName Cluster Location District Value
0001 A C1 Loc1 District1 1000
0002 B C1 Loc1 District1 2000
0003 C C2 Loc2 District1 3000
0004 D C2 Loc2 District1 4000
0005 E C3 Loc2 District1 5000
Это то, что я пробовал до сих пор.
SELECT CASE WHEN GROUPING(a.cluster) = 1 THEN a.District
WHEN GROUPING(a.branchname) = 1 THEN a.Cluster
ELSE a.BranchName
END ,
SUM(a.Value) Value
FROM ( SELECT '0001' Branch ,
'A' BranchName ,
'C1' Cluster ,
'Loc1' Location ,
'District1' District ,
1000 Value
UNION ALL
SELECT '0002' ,
'B' ,
'C1' ,
'Loc1' ,
'District1' ,
2000
UNION ALL
SELECT '0003' ,
'C' ,
'C2' ,
'Loc2' ,
'District1' ,
3000
UNION ALL
SELECT '0004' ,
'D' ,
'C2' ,
'Loc2' ,
'District1' ,
4000
UNION ALL
SELECT '0005' ,
'E' ,
'C3' ,
'Loc2' ,
'District1' ,
5000
) a
GROUP BY ROLLUP(a.Cluster, a.BranchName) ,
a.District;
И это мой результат.
Loc Value
A 1000
B 2000
C1 3000
C 3000
D 4000
C2 7000
E 5000
C3 5000
District1 15000
Iхочу показать расположение. Как это:
Loc Value
A 1000
B 2000
C1 3000
Loc1 3000
C 3000
D 4000
C2 7000
E 5000
C3 5000
Loc2 12000
District1 15000