Programmation pl/sql

amal252 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Les Tables de la base de donnée :
F(NF, NOMF, VILLE)
P(NP,NOMP,POIDS,COULEURS,VILLE)
J(NJ,NOMJ,VILLE)
FPJ(#NF,#NJ,#NP,QTE,DATELIVER)

Je veux affiché le NOMF et NP(nombre de pièce) en condition COULEUR = 'Rouge' et le nombre doit être > 20.

Mercii

2 réponses

jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
Salut,

Tu devrais mettre tous les liens (cardinalités) entre les champs des tables. Et tu auras alors quasiment ta requête. Là pour nous il nous manque des informations sur l'organisation des données.

cdlt
0
amal252 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Pourriez-vous m'expliqué de plus :)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Ce que tu cherches ne serait-il pas simplement une jointure entre ta table FPJ et la table P ?
Un truc du genre :
SELECT T1.NOMF
           T2.NB
           T2.Nombre
FROM FPJ  as T1
LEFT JOIN
 (SELECT P.NP
            , SUM(P.NP) as Nombre
  FROM P  
 WHERE P.COULEUR = 'Rouge'
 GROUP BY P.NP) T2  ON T2.NP = T1.NF
WHERE T2.Nombre >20


0
jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
Salut,

Moi je ne sais pas faire quand je ne sais pas concrètement à quoi correspondent les données. F, P, J ???

Et il serait étonnant que NP, clé, soit un nombre de pièce, plutôt un numéro. A quoi correspond la Ville dans une telle table ? Et le test sur 20 je le ferais plus sur QTE
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention  
 
Hello JeePee
Et le test sur 20 je le ferais plus sur QTE

Ce qui simplifierait beaucoup la requête...

Un truc du genre :
SELECT T1.NOMF
             ,T1.QTE      
FROM FPJ  as T1
LEFT JOIN NP as T2 ON T1.NP = T2.NP
WHERE T2.COULEUR = 'Rouge'
   AND T.QTE > 20


Mais bon, comme tu le dis, les intitulé choisi pour ses tables ne sont pas très clairs... et un DUMP des données ou une meilleur explication des champs et des relations pourrait fortement nous aider à comprendre son réel besoin.

Bonne journée.
0