Bonjour,
j'aimerai avoir votre avis et les préconisations oracle sur une requete SQL que je souhaite intégré dans mon projet :
voici les 3 tables utilisées :
Table : Projet
CodeProjet Dossier
A 1
B 1
C 1
D 2
E 2
Table : Annee
Annee
2004
2005
2006
Table : Cout
CodeProjet Annee Valeur
A 2004 4
A 2005 5
B 2006 8
C 2004 9
C 2005 10
C 2006 11
En exécutant la requête suivant :
j'obtient le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Select p.CodeProjet as projet, a.Annee as annee, nvl(select c.Valeur from Cout c where c.CodeProjet = p.CodeProjet and c.Annee = p.Annee,0) as valeur From Projet p, Annee a Where p.Dossier = 1
Résultat de la Requête
projet annee valeur
A 2004 4
A 2005 5
A 2006 0
B 2004 0
B 2005 0
B 2006 8
C 2004 9
C 2005 10
C 2006 11
Est ce que le produit cartésien entre les tables Projet et Annee peut être éviter pour obtenir le même résultat qui est de récupérer pour tous les projets pour chaque année la valeur situé dans la table Cout et si elle n'existe pas ramener la valeur 0 (ex le projet A pour l'année 2006)
Merci d'avance
Antoine
Partager