IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Afficher toutes les lignes de la requête


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Afficher toutes les lignes de la requête
    bonjour,

    je veux faire une requete qui me donne le resultat suivant :

    code produit
    code autre
    libelle produit
    pa ttc
    pmp

    le code produit, libellé produit, pa sont dans la meme table,
    le code autre est dans une autre table
    et le pmp dans une autre table,

    certains produit non pas de pmp

    mais je voudrais avoir les produits qui ont un pmp et ceux qui n'en n'ont pas.

    voici ma requete en sqlplus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     set heading off
    set lin 200
    set pages 0
    spool /m2/syst/sauv/oroscreen/ucdlistepattc1
    select r1pro.nopr,r4pro.cducd1,r1pro.lbprl1,((r1pro.puenht*r18tab.tva/100)+r1pro.puenht), rbpr.pmp from r1pro, rbpr, r4pro, r18tab where r4pro.nopr=r1pro.nopr and rbpr.nopr=r1pro.nopr and r1pro.cdtva=r18tab.cdtva and r1pro.cpor in ('H60211', 'H60212', 'H60213', 'H60218') and r4pro.indt2a='1' and r1pro.puenht2=0 UNION ALL select r1pro.nopr, r4pro.cducd1, r1pro.lbprl1,((r1pro.puenht2*r18tab.tva/100)+r1pro.puenht2), rbpr.pmp from r1pro, rbpr r4pro, r18tab where r4pro.nopr=r1pro.nopr and rbpr.nopr=r1pro.nopr and r1pro.cdtva=r18tab.cdtva and r1pro.cpor in ('H60211', 'H60212', 'H60213', 'H60218') and r4pro.indt2a='1' and (to_char(r1pro.dtfpu1) < to_char(sysdate,'YYYYMMDD'));
    spool off
    exit
    mais dans l'état elle me donne que les produits qui ont un pmp (ceux qui n'en n'ont pas ne sont pas present dans la table rbrp) donc normal mais ce n'est pas ce résultat que je souhaite obtenir

    merci pour votre aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 091
    Points : 30 870
    Points
    30 870
    Par défaut
    Commencez par écrire votre requête avec des jointures normalisées.
    Ensuite cela deviendra fort simple de convertir les jointures internes en jointures externes.

    Cours sur les Jointures en SQL
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut re
    je suis un peu perdu dans le sql

    ca veux dire quoi "Commencez par écrire votre requête avec des jointures normalisées."

    un exemple merci

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 091
    Points : 30 870
    Points
    30 870
    Par défaut
    Citation Envoyé par sherve Voir le message
    ca veux dire quoi "Commencez par écrire votre requête avec des jointures normalisées."
    En utilisant INNER JOIN ou (LEFT|RIGHT|FULL) [OUTER] JOIN
    C'est très bien expliqué dans le Cours sur les Jointures en SQL de SQLPro
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup pour les renseignements,

    voici maintenant la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    select r1pro.nopr, r4pro.cducd1, r1pro.lbprl1,((r1pro.puenht*r18tab.tva/100)+r1pro.puenht), rbpr.pmp 
    from r1pro LEFT OUTER JOIN rbpr ON r1pro.nopr=rbpr.nopr, r4pro, r18tab 
    where r4pro.nopr=r1pro.nopr 
    and r1pro.cdtva=r18tab.cdtva 
    and r1pro.cpor in ('H60211', 'H60212', 'H60213', 'H60218') 
    and r4pro.indt2a='1' 
    and r1pro.puenht2=0 
     
    UNION ALL 
     
    select r1pro.nopr, r4pro.cducd1, r1pro.lbprl1,((r1pro.puenht2*r18tab.tva/100)+r1pro.puenht2), rbpr.pmp 
    from r1pro LEFT OUTER JOIN rbpr  ON r1pro.nopr=rbpr.nopr, r4pro, r18tab 
    where r4pro.nopr=r1pro.nopr 
    and r1pro.cdtva=r18tab.cdtva 
    and r1pro.cpor in ('H60211', 'H60212', 'H60213', 'H60218') 
    and r4pro.indt2a='1' 
    and (to_char(r1pro.dtfpu1) < to_char(sysdate,'YYYYMMDD'));
    et le resultat est celui que je veux obtenir
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche multicritères - affiche toutes les lignes
    Par jarod1990 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/05/2010, 09h11
  2. afficher toutes les lignes d'une colonne d'une BDD + infos relatives à 1 ligne
    Par ju0123456789 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/02/2009, 19h20
  3. Réponses: 11
    Dernier message: 22/04/2008, 22h23
  4. Afficher toutes les lignes d'une JTable ?
    Par n!co dans le forum Composants
    Réponses: 1
    Dernier message: 12/03/2007, 13h16
  5. Réponses: 1
    Dernier message: 29/11/2005, 00h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo