Buonasera , ho un problema , ho una tabella con delle categorie articolo e queste cartelle sono contatenate tra loro, solamente che non so come posso dire a sql server di mettere di contatenarle tra madre figli nipoti
metto la tabbella in modo da essere più chiaro
id_categoria descrizione idCategoriaMadre
---------------|--------------------------------|----------------------|
30 |diesel | NULL
31 |diesel_bimbo | 30
32 |diesel bimba | 30
33 |diesel bimbo giacchetto | 31
34 |diesel bimbo tshirt | 31
35 |diesel bimbo felpa | 31
36 |diesel bimba giacchetti | 32
37 |diesel bimba gonna | 32
38 |diesel bimba felpa | 32
-------------------------------------------------------------------------
io da questa tabella vorrei fare una queri che mi faccia vedere su tre campi i tre livelli delle categorie articolo
ho scritto questa query , che funziona per la prima categoria ma non so come andare avanti
use [dbnegozio]
go
with CatPriLiv as
(SELECT id as id_categoria,nome,descrizione,idCategoriaMadre
from CategoriaArticolo
where CategoriaArticolo.isAttivo = 1 and id >= 30
)
select CatPriLiv.id_categoria,CatPriLiv.descrizione ,CatPriLiv.idCategoriaMadre,
CategoriaArticolo.nome as categoriaprimolivello
from CatPriLiv
left join CategoriaArticolo on CatPriLiv.idCategoriaMadre = CategoriaArticolo.id
--------------------------------------------------
in questo modo ottengo
id_categoria descrizione idCategoriaMadre categoriaprimolivello
---------------|--------------------------------|----------------------|----------------------------
30 |diesel | NULL |NULL
31 |diesel_bimbo | 30 |diesel
32 |diesel bimba | 30 |diesel
33 |diesel bimbo giacchetto | 31 |diesel_bimbo
34 |diesel bimbo tshirt | 31 |diesel_bimbo
35 |diesel bimbo felpa | 31 |diesel_bimbo
36 |diesel bimba giacchetti | 32 |diesel bimba
37 |diesel bimba gonna | 32 | diesel bimba
38 |diesel bimba felpa | 32 |diesel bimba
----------------------------------------------------------------------------------------------------
adesso vorrei continuare per ricostruire l'albero cioè mettere unulteriore colonna dove c'è la categoria principale
id_categoria descrizione idCategoriaMadre categoriaprimolivello categoriaprincipale
---------------|--------------------------------|----------------------|----------------------------|---------------------|
30 |diesel | NULL |NULL |NULL
31 |diesel_bimbo | 30 |diesel |NULL
32 |diesel bimba | 30 |diesel |NULL
33 |diesel bimbo giacchetto | 31 |diesel_bimbo |diesel
34 |diesel bimbo tshirt | 31 |diesel_bimbo |diesel
35 |diesel bimbo felpa | 31 |diesel_bimbo |diesel
36 |diesel bimba giacchetti | 32 |diesel bimba |diesel
37 |diesel bimba gonna | 32 | diesel bimba |diesel
38 |diesel bimba felpa | 32 |diesel bimba |diesel
-----------------------------------------------------------------------------------------------------------------------------
scusate srà una richiesta stupida ma non riesco ad uscirne
grazie in anticipo e scusate se ho scritto boiate il linguaggio slq non è il mio forte
metto la tabbella in modo da essere più chiaro
id_categoria descrizione idCategoriaMadre
---------------|--------------------------------|----------------------|
30 |diesel | NULL
31 |diesel_bimbo | 30
32 |diesel bimba | 30
33 |diesel bimbo giacchetto | 31
34 |diesel bimbo tshirt | 31
35 |diesel bimbo felpa | 31
36 |diesel bimba giacchetti | 32
37 |diesel bimba gonna | 32
38 |diesel bimba felpa | 32
-------------------------------------------------------------------------
io da questa tabella vorrei fare una queri che mi faccia vedere su tre campi i tre livelli delle categorie articolo
ho scritto questa query , che funziona per la prima categoria ma non so come andare avanti
use [dbnegozio]
go
with CatPriLiv as
(SELECT id as id_categoria,nome,descrizione,idCategoriaMadre
from CategoriaArticolo
where CategoriaArticolo.isAttivo = 1 and id >= 30
)
select CatPriLiv.id_categoria,CatPriLiv.descrizione ,CatPriLiv.idCategoriaMadre,
CategoriaArticolo.nome as categoriaprimolivello
from CatPriLiv
left join CategoriaArticolo on CatPriLiv.idCategoriaMadre = CategoriaArticolo.id
--------------------------------------------------
in questo modo ottengo
id_categoria descrizione idCategoriaMadre categoriaprimolivello
---------------|--------------------------------|----------------------|----------------------------
30 |diesel | NULL |NULL
31 |diesel_bimbo | 30 |diesel
32 |diesel bimba | 30 |diesel
33 |diesel bimbo giacchetto | 31 |diesel_bimbo
34 |diesel bimbo tshirt | 31 |diesel_bimbo
35 |diesel bimbo felpa | 31 |diesel_bimbo
36 |diesel bimba giacchetti | 32 |diesel bimba
37 |diesel bimba gonna | 32 | diesel bimba
38 |diesel bimba felpa | 32 |diesel bimba
----------------------------------------------------------------------------------------------------
adesso vorrei continuare per ricostruire l'albero cioè mettere unulteriore colonna dove c'è la categoria principale
id_categoria descrizione idCategoriaMadre categoriaprimolivello categoriaprincipale
---------------|--------------------------------|----------------------|----------------------------|---------------------|
30 |diesel | NULL |NULL |NULL
31 |diesel_bimbo | 30 |diesel |NULL
32 |diesel bimba | 30 |diesel |NULL
33 |diesel bimbo giacchetto | 31 |diesel_bimbo |diesel
34 |diesel bimbo tshirt | 31 |diesel_bimbo |diesel
35 |diesel bimbo felpa | 31 |diesel_bimbo |diesel
36 |diesel bimba giacchetti | 32 |diesel bimba |diesel
37 |diesel bimba gonna | 32 | diesel bimba |diesel
38 |diesel bimba felpa | 32 |diesel bimba |diesel
-----------------------------------------------------------------------------------------------------------------------------
scusate srà una richiesta stupida ma non riesco ad uscirne
grazie in anticipo e scusate se ho scritto boiate il linguaggio slq non è il mio forte