Bonjour, le titre n'est pas très parlant donc je vair tenter d'être le plus précis possible.

Soit les tables suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
code(idCode, code, type)
zone(idZone, codeZone, libelle)
data(code,tarif_zone1,tarif_zone2,tarif_zone3)

code contient :
1 1 voiture
2 110 camion
3 210 avion

zone contient :
1 zone1 paris
2 zone2 marseille
3 zone3 madrid

data contient:
1 10 20 30
2 40 60 30
3 10 10 50

En exécutant la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT d.code, type,idZone, codeZone, libelle
FROM data d
INNER JOIN code cde ON cde.CODE=d.code
CROSS JOIN zone
j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
code    type        tarif_zone1	tarif_zone2  tarif_zone3 idZone   codeZone  libelle
------- ----------- -----------	------ 	     ----------- -------- --------  ----------
1       voiture     10 		20 		30	 1        zone1      paris
2       camion      40 		60 		30	 2        zone2      marseille
3       Avions      10 		10 		50	 3        zone3      madrid
 
 
(3*ligne(s) affectée(s))
Est-il possible de joindre les tables code, zone et data pour avoir une unique colone tarif avec pour contenue les tarifs en fonction de la zone ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
code      type          tarif	 	idZone   codeZone  	libelle
--------- --------  -----------	-------- ---------- 	----------	
1         voiture       tarif_zone1 	1           zone1      	paris
2         camion        tarif_zone2 	2           zone2      	marseille
3         Avions        tarif_zone3 	3           zone3      	madrid


(3*ligne(s) affectée(s))
C'est-à-dire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
code      type          tarif	 	idZone   codeZone  	libelle
--------- --------  -----------	-------- ---------- 	----------	
1         voiture       10 	1           zone1      	paris
2         camion        60	2           zone2      	marseille
3         Avions        50 	3           zone3      	madrid
 
 
(3*ligne(s) affectée(s))
Merci d'avance