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 :

Pas de remontée de données


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 Pas de remontée de données
    Bonjours à tous.
    Dans la requête suivante je n'ai pas de donnée pour la ligne 12 (tppo_tps_passe).
    J'ai essayé avec une sous requête et toujours pas de résultats.
    Merci d'avance pour votre aide.

    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
    SELECT  lcfo_orfa_numero                       "Of"
        ,   vlrf_arti_code_recu                                  "art"
        ,   lcfo_cdfo_numero                                     "N° cde"
        ,   lcfo_qte_commandee_ua                           "qté cdée"
        ,   vlrf_dt_reception                                     "dt recpt"
        ,   vlrf_qte_recue_verif_ue                            "Qté recue"
        ,   (SELECT MAX(tps_personnel_of.dt_cre)
             FROM tps_personnel_of
             WHERE tppo_phof_numero_phase = '499'
             AND tppo_orfa_numero = lcfo_orfa_numero
            )                                                          "dt ctl visu"
        ,   tppo_tps_passe                                       "tps passé"                                            
    FROM v_ligne_reception_fournisseur
        LEFT OUTER JOIN ligne_cde_fournisseur
            ON vlrf_cdfo_numero = lcfo_cdfo_numero
            AND vlrf_arti_code_recu = lcfo_arti_code
            AND lcfo_phof_numero_phase = '400'
        LEFT OUTER JOIN tps_personnel_of
            ON lcfo_orfa_numero = tppo_orfa_numero
            AND lcfo_phof_numero_phase = tppo_phof_numero_phase
            AND tppo_phof_numero_phase  = '499'
    WHERE vlrf_dt_reception > '15/01/2016'
            AND  lcfo_orfa_numero = '220633'
    ORDER BY  lcfo_orfa_numero 
      ,       vlrf_arti_code_recu
      ,       lcfo_cdfo_numero

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur en études décisionnelles
    Inscrit en
    Février 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur en études décisionnelles

    Informations forums :
    Inscription : Février 2013
    Messages : 134
    Points : 351
    Points
    351
    Par défaut
    Bonjour,

    J'imagine que le champ tppo_tps_passe vient de la table tps_personnel_of ? Si c'est le cas, vu que vous êtes en jointure externe, deux possibilités :
    • Soit la jointure ne se fait pas (ça arrive)
    • Soit certaines clauses where ne devraient pas être écrites ici


    Essayez d'écrire la clause "lcfo_orfa_numero = '220633'" dans la condition de jointure et non pas dans le where...
    A voir ce billet.

    Bon courage.

  3. #3
    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
    j'ai mis un peu d'ordre dans la requête.
    j'ai élargi mes recherches en supprimant cette close et je n'ai que des données partielles.
    Mes problèmes arrivent dés que je demande le "tps passé"

    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
    SELECT  ligne_cde_fournisseur.lcfo_orfa_numero                                  "Of"
        ,   v_ligne_reception_fournisseur.vlrf_arti_code_recu                       "art"
        ,   ligne_cde_fournisseur.lcfo_cdfo_numero                                  "N° cde"
        ,   ligne_cde_fournisseur.lcfo_qte_commandee_ua                             "qté cdée"
        ,   v_ligne_reception_fournisseur.vlrf_dt_reception                         "dt recpt"
        ,   v_ligne_reception_fournisseur.vlrf_qte_recue_verif_ue                   "Qté recue"
        ,   (
            SELECT MAX(tps_personnel_of.dt_cre)
            FROM tps_personnel_of
            WHERE tps_personnel_of.tppo_phof_numero_phase = '499'
            )                                                                       "dt ctl visu"
        ,   (
            SELECT tps_personnel_of.tppo_tps_passe 
            FROM tps_personnel_of 
            WHERE  tps_personnel_of.dt_cre =  (
                                              SELECT MAX(tps_personnel_of.dt_cre)
                                              FROM tps_personnel_of
                                              WHERE tps_personnel_of.tppo_phof_numero_phase = '499'
                                              )
            AND tps_personnel_of.tppo_orfa_numero = ligne_cde_fournisseur.lcfo_orfa_numero
            )                                                                       "tps passé"                                            
    FROM v_ligne_reception_fournisseur
        LEFT OUTER JOIN ligne_cde_fournisseur
            ON v_ligne_reception_fournisseur.vlrf_cdfo_numero = ligne_cde_fournisseur.lcfo_cdfo_numero
            AND v_ligne_reception_fournisseur.vlrf_arti_code_recu = ligne_cde_fournisseur.lcfo_arti_code
            AND ligne_cde_fournisseur.lcfo_phof_numero_phase = '400'
    WHERE v_ligne_reception_fournisseur.vlrf_dt_reception > '15/01/2016'
    ORDER BY  ligne_cde_fournisseur.lcfo_orfa_numero 
      ,       v_ligne_reception_fournisseur.vlrf_arti_code_recu
      ,       ligne_cde_fournisseur.lcfo_cdfo_numero

  4. #4
    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 803
    Points
    30 803
    Par défaut
    Et en présentant la requête de cette manière ?
    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
    SELECT  cde.lcfo_orfa_numero            "Of"
        ,   rcp.vlrf_arti_code_recu         "art"
        ,   cde.lcfo_cdfo_numero            "N° cde"
        ,   cde.lcfo_qte_commandee_ua       "qté cdée"
        ,   rcp.vlrf_dt_reception           "dt recpt"
        ,   rcp.vlrf_qte_recue_verif_ue     "Qté recue"
        ,   tp1.dt_tcl_visu                 "dt ctl visu"
        ,   tp2.tppo_tps_passe              "tps passé"                                            
    FROM    (   SELECT  MAX(tps_personnel_of.dt_cre)    dt_tcl_visu
                FROM    tps_personnel_of
                WHERE   tppo_phof_numero_phase = '499'
            )   tp1
        ,   v_ligne_reception_fournisseur   rcp
        LEFT OUTER JOIN 
            ligne_cde_fournisseur           cde
            ON  cde.lcfo_cdfo_numero        = rcp.vlrf_cdfo_numero
            AND cde.lcfo_arti_code          = rcp.vlrf_arti_code_recu
            AND cde.lcfo_phof_numero_phase  = '400'
        LEFT JOIN
            tps_personnel_of    tp2
            ON  tp2.tppo_orfa_numero    = cde.lcfo_orfa_numero
            AND tp2.dt_cre              = tp1.dt_tcl_visu
    WHERE   rcp.vlrf_dt_reception   > TO_DATE('15/01/2016', 'dd/mm/yyyy')
    ORDER BY cde.lcfo_orfa_numero 
        ,   rcp.vlrf_arti_code_recu
        ,   cde.lcfo_cdfo_numero
    ;
    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 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
    Bonjour à tous,

    J'ai une erreur à la ligne 22: ''tp1.dt_tcl_visu'' --> identificateur non valide.

    Ensuite, peut-on m'expliquer le déplacement de la sous requête ''SELECT MAX..." dans le FROM afin que j'en tienne compte plus tard.
    Merci

  6. #6
    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
    Bonjour à tous.
    J'ai travaillé sur ma requête et je n'arrive pas à faire le lien entre "dt_ctl_visu" et les autres données. J'ai plus de 40000 dates pour une seule valable.
    Est ce que quelqu'un peut me mettre sur le chemin?
    [CODE]SELECT cde.lcfo_orfa_numero "Of"
    , rcp.vlrf_arti_code_recu "art"
    , cde.lcfo_cdfo_numero "N° cde"
    , cde.lcfo_qte_commandee_ua "qté cdée"
    , rcp.vlrf_dt_reception "dt recpt"
    , rcp.vlrf_qte_recue_verif_ue "Qté recue"
    , dt_ctl_visu
    -- , tp2.tppo_tps_passe "tps passé"
    FROM v_ligne_reception_fournisseur rcp
    LEFT OUTER JOIN
    ligne_cde_fournisseur cde
    ON cde.lcfo_cdfo_numero = rcp.vlrf_cdfo_numero
    AND cde.lcfo_arti_code = rcp.vlrf_arti_code_recu
    AND cde.lcfo_phof_numero_phase = '400'
    LEFT OUTER JOIN
    tps_personnel_of tp1
    ON tp1.tppo_orfa_numero = cde.lcfo_orfa_numero
    AND tp1.tppo_phof_numero_phase = '499'
    , ( SELECT tppo_orfa_numero
    , tppo_phof_numero_phase
    , MAX(tps_personnel_of.dt_cre) dt_ctl_visu
    FROM tps_personnel_of
    WHERE tps_personnel_of.tppo_phof_numero_phase = '499'
    GROUP BY tps_personnel_of.tppo_orfa_numero
    , tps_personnel_of.tppo_phof_numero_phase
    ) tp2
    WHERE cde.lcfo_orfa_numero = '228807'


    [CODE]

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2006, 10h23
  2. [SQL][C#] Pas d'accès aux données d'une base SQL
    Par ridd21 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/06/2006, 10h46
  3. Remonter des donnes sur ACCESS
    Par pierre bunel dans le forum Access
    Réponses: 1
    Dernier message: 22/12/2005, 17h03
  4. DBListBox n'affiche pas ma base de données !
    Par vins91 dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/03/2005, 21h35
  5. [C#] Je n'arrive pas à remonter les données
    Par Le Basque dans le forum Windows Forms
    Réponses: 14
    Dernier message: 17/01/2005, 19h40

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