OVH Cloud OVH Cloud

Sérialisé des données dans une colonne... possible ?

1 réponse
Avatar
llopht
Salut à tous,

J'ai deux tables du genre :

tblMachines
strNom

tblPeripheriques
IdMachine
strNom
strNumeroDeSerie

Si par exemple j'ai (Machines / Peripheriques) :

Ordinateur1
Souris 6540
Clavier 5404
Enceintes 6546
Ordinateur2
Souris 6654
Clavier 5877

Est-il possible de faire une requête qui me renvoit ce genre de résultat :

Champ1 (strNom) Champ2
Ordinateur1 Souris=6540,Clavier=5404,Enceintes=6546
Ordinateur2 Souris=6654,Clavier=5877

En gros je souhaite sérializer les données de la deuxième table dans un
champ tout en récupérant les champs de la première table. Est-ce
possible de faire ça avec SQL 2000 dans une procédure stockée ou une vue ?

Merchhhhhiiiii pour vos idées !!

llopht

1 réponse

Avatar
Bonsoir,

Je vous conseillerais de passer par une UDF, mais c'est aussi faisable sans
(sur le même principe)
C'est un premier jet car pour bien faire il faudrait gérer les cas ou il n'y
a pas de n° de serie, les noms vide etc ...

Create function f_GetListePerihByIdMachine(@id_machine int)
returns varchar(4000)
as
Begin
Declare @r as varchar(4000)
Set @r=''
Select @r=@r+strNom+'='+strNumeroDeSerie+','
from tblPeripheriques
where IdMachine = @id_machine
Set @r=left(@r,len(@r)-1) --Retire la dernière virgule

return(ISNULL(@r,''))
END

Puis la requete :

select strNom , dbo.f_GetListePerihByIdMachine(id)
from tblMachines
Ceci en supposant que la table tblPeripheriques ait une colonne id (que vous
n'avez pas précisée...)

Bon code...



"llopht" a écrit dans le message de news:
%
Salut à tous,

J'ai deux tables du genre :

tblMachines
strNom

tblPeripheriques
IdMachine
strNom
strNumeroDeSerie

Si par exemple j'ai (Machines / Peripheriques) :

Ordinateur1
Souris 6540
Clavier 5404
Enceintes 6546
Ordinateur2
Souris 6654
Clavier 5877

Est-il possible de faire une requête qui me renvoit ce genre de résultat :

Champ1 (strNom) Champ2
Ordinateur1 Sourise40,ClavierT04,Enceintese46
Ordinateur2 Sourisf54,ClavierX77

En gros je souhaite sérializer les données de la deuxième table dans un
champ tout en récupérant les champs de la première table. Est-ce possible
de faire ça avec SQL 2000 dans une procédure stockée ou une vue ?

Merchhhhhiiiii pour vos idées !!

llopht