|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 15 ![]() |
Bonjour,
j'ai 2 tables : - intervention (comprenant des dates, des intervenants et un critère) - param_critere (qui contient les critères, leur libelles, un numéro + d'autres infos) Je veux faire une requête me ramenant le COMPTE DES INTERVENTIONS groupé par critères (mais même le comp)te pour les critères inutilisés) Par exemple : j'ai 8 critères dans ma table param_critère (1001 à 1008) mais dans la table intervention, je n'en ai aucune avec les codes 1007 et 1008 donc si je fais : Code :
J'ai essayé en mettant un (+) pour faire une jointure externe mais ca ne me ramené pas les résultats. Si quelqu'un pouvait m'aider pour que je reteste et corrige mon soucis. Merci d'avance |
||
|
|
00
|
|
|
#2 | ||
|
Membre chevronné
![]() loic Administrateur de base de données Inscription : décembre 2007 Messages : 673 ![]() |
Bonjour,
il faut faire une jointure externe : Code :
__________________
========================================== La justice sans la force est impuissante, la force sans la justice est tyrannique... |
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Pour le joli case on pourrait utiliser la fonction NVL ou mieux la fonction COALESCE.
Mais en fait dans ce cas c'est inutile, le comptage renverra 0 s'il ne trouve rien. Dès lors qu'on a plus d'une table dans une requête, il est fortement avisé d'utiliser des alias de table. Et enfin, depuis la 9i (presque dix ans), Oracle permet l'écriture normative OUTER JOIN : Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#4 | ||||||
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 15 ![]() |
J'ai utilisé vos 2 réponses maix ca n'affiche pas les criteres pour lesquels le COMPTE est 0 donc je me retrouve dans le meme cas.
Je vous note ICI exactement les requetes que j'ai lancé et les résultats obtenus sous TOAD. 1ère requete avec toutes les conditions : Code :
Voici mes résultats obtenus Code :
Code :
J'ai bien le 5006 alors que je ne le vois pas avec la valeur 0 dans ma 1ere requete. J'ai meme etsté avec le case et le nvl mais ca ne donne rien. PS : Je suis en Oracle 9.2 Merci d'avance car je suis vraiment bloqué pour mon programme. |
||||||
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
A priori le code suivant devrait marcher (je n'ai pas de jeu d'essais, je n'ai pas testé) :
Code sql :
|
||
|
00
|
|
|
#6 | |||
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 15 ![]() |
Citation:
Quand j'execute, voici le message d'erreur Code :
|
|||
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Les jointures ANSI fontionnent en Oracle 9.2
|
|
|
00
|
|
|
#8 | |
|
Membre chevronné
![]() loic Administrateur de base de données Inscription : décembre 2007 Messages : 673 ![]() |
Citation:
__________________
========================================== La justice sans la force est impuissante, la force sans la justice est tyrannique... |
|
|
|
00
|
|
|
#9 | ||||
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 15 ![]() |
Merci pour tes réponses mais malheureusement, ce n'est pas çà, voici ma requete et le mesage d'erreur encore
Code :
Meme si j'enleve le critere de sélection des dates et autres motifs, cela ne fonctionne pas Code :
|
||||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Vous est certain que c'est une base Oracle 9.2 ? Affichez le banner du sqlplus:
Code :
|
||
|
|
00
|
|
|
#11 | |||
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 15 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#12 | |
![]() ![]() |
Citation:
__________________
Email : http://scr.im/waldar |
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 15 ![]() |
Salut à tous et merci pour vos réponses.
En fait, j'ai eu une réponse en INTERNE qui me disait que partout où je faisais une condition sur la table PI, il me fallait le (+) donc j'ai ajouté ca comme dans l'exemple ci dessous et ca marche : Code :
CRITERE_NUMERO COUNT(PI.INTERVENTION_NUMERO) -------------- ----------------------------- 5101 298 5102 62 5103 47 5104 3 5105 2 5106 0 5107 204 5108 67 5109 8 5110 21 5111 200 5112 8 Merci pour votre aide et pour votre disponibilité |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com