Bonjour,
Pour un petit projet personnel j'ai créé une base (SQL Server 2005) permettant d'inventorier des PC avec leurs matériels, et mon problème se trouve sur l'affichage des données entre trois tables.
PC_computer, RAM_memoire et PC_RAM organisée comme suit :
PC_computer(PC_ID, PC_NOM)
PC_RAM(#PC_ID, #RAM_ID)
RAM_memoire(RAM_ID, RAM_TAI)
L'idée est que dans le PC j'ai des barrettes de RAM (entre 1 et n) et qu'il me suffit de connaître l'ID du PC pour obtenir la liste des barretes de RAM, avec leur taille respective, qu'il contient.
Exemple :
Il suffit donc pour connaître les barretes que contient le PC toto de jouer la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 PC_computer PC_RAM RAM_memoire ------------------ ------------------ -------------------- | PC_ID | PC_NOM | | PC_ID | RAM_ID | | RAM_ID | RAM_TAI | ------------------ ------------------ -------------------- | 1 | toto | | 1 | 1 | | 1 | 512 | | 2 | tata | | 1 | 2 | | 2 | 1024 | | 3 | tutu | | 2 | 1 | -------------------- ------------------ | 3 | 1 | | 3 | 1 | ------------------
Ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT PC_NOM, RAM_TAI FROM PC_computer P INNER JOIN PC_RAM PR ON P.PC_ID = PR.PC_ID INNER JOIN RAM_memoire R ON PR.RAM_ID = R.RAM_ID WHERE P.PC_NOM = 'toto'
Mais j'aimerai réussir à afficher le tout sur une ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ------------------------- | | PC_NOM | RAM_TAI | ------------------------- | #1 | toto | 512 | | #2 | toto | 1024 | -------------------------
Du genre le nom du pc suivit de la taille de chaque barrette qu'il contient dans des colonnes différentes :
toto 512 1024
ou
tata 1024 NULL
Y a-t-il un moyen d'écrire la requête pour obtenir ce genre d'affichage ?
Partager