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

SQL Oracle Discussion :

Filtrer en prenant en compte les valeurs nulles


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut Filtrer en prenant en compte les valeurs nulles
    Bonjour à tous,
    dans ma requête suivante, je voudrais ne faire apparaître que les lignes qui ont une quantité reçue (col8) < à la quantité commandée (col9)(y compris les valeurs nulles)
    Merci d'avance.

    Code sql : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    SELECT lcfo_cdfo_numero "N°cde"
    ,lcfo_ligne "Ligne"
    ,TO_CHAR( ligne_cde_fournisseur.dt_cre,'DD/MM/YYYY') "Dt cde"
    ,four_nom "Fourn"
    ,lcfo_four_code "Code fourn"
    ,lcfo_arti_code "Art"
    ,arti_designation "Design"
    ,lcfo_qte_commandee_ua "Qté cdée"
    ,lrfo_qte_recue_verif_ua "Qté recue"
    --,lrfo_refo_numero "Recpt"
    ,Lcfo_unit_code_ua "Unit"
    ,lcfo_dt_livraison_demande "A livrer le"
    ,lcfo_dt_livraison_confirme "Confirmée"
    ,lcfo_statut "Statut"
    --, lcfo_dt_derniere_reception "Dt recpt" 
    --, lcfo_four_code "Code fourn"
    --,four_coge_compte_tiers "cpte four"
        FROM article, ligne_cde_fournisseur, fournisseur,ligne_reception_fournisseur
            WHERE lcfo_arti_code = arti_code
            AND lcfo_arti_code = lrfo_arti_code_recu (+)
            AND lcfo_cdfo_numero = lrfo_cdfo_numero (+)
            AND lcfo_ligne = lrfo_ligne (+)
            AND four_code = lcfo_four_code
            AND lcfo_statut <> 'SOL'
            --AND lcfo_cdfo_numero = '13-01516'
            --AND lrfo_qte_recue_verif_ua BETWEEN Null AND < lcfo_qte_commandee_ua
            --AND lrfo_qte_recue_verif_ua < lcfo_qte_commandee_ua
    ORDER BY 4,1;

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 809
    Points
    30 809
    Par défaut
    Commencez par réécrire votre requête en respectant la forme normalisée des jointures externes et en qualifiant chaque colonne du nom de le table (ou alias) à laquelle elle appartient.
    Ainsi la requête sera plus lisible et il sera possible d'identifier clairement ce qui pourrait poser problème dans votre demande, qui parait simple au demeurant.
    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
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 809
    Points
    30 809
    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.

  4. #4
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut
    je viens à l'instant de supprimer ma réponse car j'ai compris pour les formes normalisées des jointures. J'ai fais une formation en septembre qui ne mentionne pas cette norme, mais le l'ai déjà essayé.
    Je modifie ma requête et je la reposte.

  5. #5
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut
    voilà la requête modifiée.


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    SELECT ligne_cde_fournisseur.lcfo_cdfo_numero "N°cde" 
    ,ligne_cde_fournisseur.lcfo_ligne "Ligne" 
    ,TO_CHAR( ligne_cde_fournisseur.dt_cre,'DD/MM/YYYY') "Dt cde" 
    ,Fournisseur.four_nom "Fourn" 
    ,ligne_cde_fournisseur.lcfo_four_code "Code fourn" 
    ,ligne_cde_fournisseur.lcfo_arti_code "Art" 
    ,article.arti_designation "Design" 
    ,ligne_cde_fournisseur.lcfo_qte_commandee_ua "Qté cdée" 
    ,ligne_reception_fournisseur.lrfo_qte_recue_verif_ua "Qté recue" 
    --,ligne_reception_fournisseur.lrfo_refo_numero "Recpt" 
    ,ligne_cde_fournisseur.Lcfo_unit_code_ua "Unit" 
    ,ligne_cde_fournisseur.lcfo_dt_livraison_demande "A livrer le" 
    ,ligne_cde_fournisseur.lcfo_dt_livraison_confirme "Confirmée" 
    ,ligne_cde_fournisseur.lcfo_statut "Statut" 
    --, lcfo_dt_derniere_reception "Dt recpt"  
    --, lcfo_four_code "Code fourn" 
    --,four_coge_compte_tiers "cpte four"     
    FROM  ligne_cde_fournisseur         
    LEFT OUTER JOIN ligne_reception_fournisseur             
    ON ligne_cde_fournisseur.lcfo_arti_code = ligne_reception_fournisseur.lrfo_arti_code_recu             
    AND ligne_cde_fournisseur.lcfo_cdfo_numero = ligne_reception_fournisseur.lrfo_cdfo_numero             
    AND ligne_cde_fournisseur.lcfo_ligne = ligne_reception_fournisseur.lrfo_ligne        
    ,article
    ,fournisseur             
    WHERE ligne_cde_fournisseur.lcfo_arti_code = article.arti_code             
    AND fournisseur.four_code = ligne_cde_fournisseur.lcfo_four_code             
    AND ligne_cde_fournisseur.lcfo_statut <> 'SOL'             
    --AND ligne_cde_fournisseur.lcfo_cdfo_numero = '13-01516'             
    --AND ligne_reception_fournisseur.lrfo_qte_recue_verif_ua BETWEEN Null AND < ligne_cde_fournisseur.lcfo_qte_commandee_ua             
    --AND ligne_reception_fournisseur.lrfo_qte_recue_verif_ua < ligne_cde_fournisseur.lcfo_qte_commandee_ua 
    ORDER BY 4,1;

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE NVL(lrfo_qte_recue_verif_ua,0) < lcfo_qte_commandee_ua
    NVL(lrfo_qte_recue_verif_ua,0) = Si lrfo_qte_recue_verif_ua alors retourner 0

  7. #7
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut
    Merci à tous , tout est ok.

    AT

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

Discussions similaires

  1. SQL Developer IHM - Filtrer les valeurs nulles.
    Par Creepy78 dans le forum Sql Developer
    Réponses: 1
    Dernier message: 07/04/2014, 12h32
  2. [MySQL] exporter un tableau php vers MySQL en prenant en compte les NULL
    Par pierricktpt dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/03/2012, 08h51
  3. [Excel] Ne pas tracer les valeurs nulles d'un graphe
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2006, 19h00
  4. order by sans les valeurs NULL
    Par pendragon509 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/10/2005, 12h31
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

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