Construction requete SQL

Fermé
z_a7med Messages postés 10 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 19 août 2008 - 5 août 2008 à 10:12
amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010 - 5 août 2008 à 16:28
Bonjour,

Voila j'ai un problème dans une construction de requete SQL. JE voudrais combiner deux requetes mais J'ai un pti souci.

En effet j'ai une table contenant une liste de personnel. Et je vais calculer deux types de performances de deux tables différentes. J'ai voulu combiner les deux performances dans une meme requete et les afficher sur la meme table, mais le problème est que on ne calcule pas les deux types de performances pour tous le personnel.

Voila un exemple :

Supposont que nous avons 4 personnel : Perso1,Perso2,Perso3 et Perso4

Pour la Perf1 : on la calcule pour Perso1, Perso2,Perso3

Pour la Perf2 : on la calcule pour Perso1,Perso3,Perso4

ce que j'obtiens :

Perso | Perf1

Perso1 | Perf1_Perso1
Perso2 | Perf1_Perso2
Perso3 | Perf1_Perso3

Perso | Perf2

Perso1 | Perf2_Perso1
Perso3 | Perf2_Perso3
Perso4 | Perf2_Perso4

J'ai voulu combiner ces deux tables avec un "inner join on table1.Perso=Tbale2.Perso "mais je n'obtiens que l'intersection.
Je voudrais les combiner et remplacer les valeurs inexistantes par 0 de façon que j'obtienne :

Perso | Perf1 | Perf2

Perso1 | Perf1_Perso1 | Perf2_Perso1
Perso2 | Perf1_Perso2 | 0
Perso3 | Perf1_Perso3 | Pef2_Perso3
Perso4 | 0 | Perf2_Perso4


Y'a t'il une manière de faire??

J'utilise Oracle
A voir également:

5 réponses

gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
5 août 2008 à 10:16
Salut,

essaye de mettre un + à la fin de ta requête SQL !

Normalement, je crois que si il y a un 0 ou Null, la requête continue et affiche 0.

A+

Gaerebut
0
abriksm Messages postés 4 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 5 août 2008
5 août 2008 à 10:24
En SQL server j'aurais mis un ' cast (numeric,isnull(Perf1_Perso1 ,0)); ' pour que la requete retourne 0 à chaque fois que la valeur est nulle
0
z_a7med Messages postés 10 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 19 août 2008 1
5 août 2008 à 13:07
Merci pour vos réponses mais ca ne résoud pas le problèmes. En effet, le calcul des deux Performances n'est pas aussi simple mais il est le résultat d'une requete contenant plusieurs inner join. et je Voudrais combiner le résultat de ces deux requetes que j'ai deja construites
0
amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010 123
5 août 2008 à 14:02
Salut,
Complétez chaque table pour que les personnes qui n'ont pas de valeur aient la valeur 0 (Utilisez éventuellement deux tables tampon).
C'est pas une solution de geek mais si ça peut aider.

0
z_a7med Messages postés 10 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 19 août 2008 1
5 août 2008 à 14:24
j'ai deja construit deux tables tampons, mais comment attribuer 0 a ceux qui nont pas de val?
0
amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010 123
5 août 2008 à 16:28
*** Voir EXISTS :
http://dev.mysql.com/doc/refman/5.0/fr/exists-and-not-exists-subqueries.html
https://sqlpro.developpez.com/cours/sqlaz/sousrequetes/#L1.5.1
Il suffit d'utiliser le résultat de la requête pour l'insérer dans la table tampon.

*** Requête donnant la liste des enregistrements de la table 1 qui ne sont pas dans la table 2 :
Select LECHAMP From TABLE1 Where LECHAMP Not In (Select LECHAMP2 From TABLE2);

Source : https://access.developpez.com/faq/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abriksm Messages postés 4 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 5 août 2008
5 août 2008 à 16:16
T'as essayé? isnull(requête,0)
0