Create table test123 (
CustId int,
[Level] int,
RowNum int,
USAFlag bit
)
insert into test123(CustId,[Level],RowNum,USAFlag)values
(101,1,1,0),
(102,2,1,0),
(102,2,2,1),
(103,3,1,0),
(103,3,2,1),
(103,3,3,0),
(104,4,1,1),
(104,4,2,0),
(104,4,3,0),
(104,4,4,1),
(105,2,1,1),
(105,2,2,0),
(106,2,1,0),
(106,2,2,0),
(107,3,1,0),
(107,3,2,0),
(107,3,3,1),
(108,1,1,1)
AusgabeSQL-Abfrage auf Gruppe basiert von, abgeleitete Spalte auf min und max basierend benötigen
CustID USARootLeaf
101 ONlyONeLevel_NonUSA
102 Leaf_USA
103 Root_Leaf_NonUSA
104 Root_Leaf_USA
105 Root_USA
106 Root_Leaf_NonUSA
107 Leaf_USA
108 OnlyOneLvel_USA
Logic: Wenn Level 1 ist, dann sollte USARootLeaf Wert OnlyOneLvel_USA oder OnlyOneLvel_NonUSA sein basierend auf usaflag Wert
Wenn Level> 1 ist, dann sollte USARootLeaf Wert sein Root_Leaf_USA, Root_Leaf_NonUSA, Root_USA, Leaf_USA basierend auf min (Pegel) und max (Pegel) Wert von usaflag ist wahr/falsch
Es ist nicht klar, wenn es Blatt ... und wann ist Root_Leaf ... – FLICKER
Können Sie mehr Details der Logik geben, wenn Level> 1? – Jason