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 9445 Date d'inscription   Statut Modérateur Dernière intervention   9 984
     
    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 832
     
    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 9445 Date d'inscription   Statut Modérateur Dernière intervention   9 984
       
      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 832 > jee pee Messages postés 9445 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