Programmation pl/sql

amal252 Messages postés 12 Statut Membre -  
jordane45 Messages postés 30427 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

  1. jee pee Messages postés 31938 Date d'inscription   Statut Modérateur Dernière intervention   9 999
     
    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
    1. amal252 Messages postés 12 Statut Membre
       
      Pourriez-vous m'expliqué de plus :)
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    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
    1. jee pee Messages postés 31938 Date d'inscription   Statut Modérateur Dernière intervention   9 999
       
      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
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833 > jee pee Messages postés 31938 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