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 :

requete sioux (pour moi!)


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 38
    Points
    38
    Par défaut requete sioux (pour moi!)
    Bonjour,

    j'ai une requete à faire qui me pose soucis.. si vous pouviez m'aider..

    Je récupère mes enregistrements d'une table adm, d'une table admc et d'une table contenant des énumérations sur lesquels j'ai fait une jointure. Je prend aussi en condition un intervalle de dates sur une date de donnée.
    La ou je bloque, c'est que je dois, pour la table adm, avoir un champ NB_VEH_COMMANDE_CL_QT (à mettre dans ma requete en dessous) qui compte le nombre d'enregistrements, le courant compris, ayant le champ adm.vehicule renseigné (donc not null) et qui ont la même valeur pour le champ adm.commande. Ce traitement doit se faire uniquement sur le champ NB_VEH_COMMANDE_CL_QT et ne pas affecter le reste de la requete..

    Ex :

    oid vehicule commande
    1 1 4
    2 2 4
    3 3 3
    4 4

    on récupére count(adm.commande) = 2 pour l'enregistrement numéro 1 sur lequel on veut faire le calcul..


    SELECT adm.oid,
    TEA.FORMAT_TOOLS.LongToTime(adm.date_ligne_commande),
    admc.entite_operationnelle_ope ,
    adm.donneur_ordre,
    adm.vehicule,
    adm.prestation,
    adm.detail_ligne_contrat,
    adm.trp_site_enlevement,
    adm.trp_site_livraison,
    admc.numero_commande,
    admc.libelle,
    adm.commande,
    adm.total_ht,
    enu.libelle_lng,
    ? as NB_VEH_COMMANDE_CL_QT
    FROM
    ADM_COMMANDEC_LIGNE adm,
    ADM_COMMANDE_CLIENT admc,
    ENU_STATUT_ADM_PRST enu
    WHERE
    adm.date_ligne_commande BETWEEN TEA.FORMAT_TOOLS.TimeToLong(:l_date_min) AND TEA.FORMAT_TOOLS.TimeToLong(:l_date_max)
    AND
    enu.oid = adm.statut_admin

    J'espere avoir été assez clair.. merci pour l'aide!! (au fait ma requete est faite sous oracle)

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 121
    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 121
    Points : 28 534
    Points
    28 534
    Par défaut
    Le moyen le plus évident, ce serait :
    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
    SELECT  adm.oid
        ,   TEA.FORMAT_TOOLS.LongToTime(adm.date_ligne_commande)
        ,   admc.entite_operationnelle_ope 
        ,   adm.donneur_ordre
        ,   adm.vehicule
        ,   adm.prestation
        ,   adm.detail_ligne_contrat
        ,   adm.trp_site_enlevement
        ,   adm.trp_site_livraison
        ,   admc.numero_commande
        ,   admc.libelle
        ,   adm.commande
        ,   adm.total_ht
        ,   enu.libelle_lng
        ,   (   COUNT(*)   
                FROM    ADM_COMMANDEC_LIGNE AS cnt
                WHERE   adm.commande = cnt.commande
            ) as NB_VEH_COMMANDE_CL_QT
    FROM
            ADM_COMMANDEC_LIGNE AS adm
        INNER JOIN
            ENU_STATUT_ADM_PRST AS enu
            ON  enu.oid = adm.statut_admin
        INNER JOIN
            ADM_COMMANDE_CLIENT AS admc
            ON  admc.commande = adm.commande (???)
    WHERE
            adm.date_ligne_commande BETWEEN TEA.FORMAT_TOOLS.TimeToLong(:l_date_min) AND TEA.FORMAT_TOOLS.TimeToLong(:l_date_max)
    ;
    Par ailleurs tarequête ne prévoyait pas la jointure entre adm et admc

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 38
    Points
    38
    Par défaut
    Merci pour l'aide!

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 121
    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 121
    Points : 28 534
    Points
    28 534
    Par défaut
    N'oublie pas le bouton

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

Discussions similaires

  1. requetes délicates .. pour moi
    Par bastien dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/03/2009, 09h24
  2. débutant et requete complexe (pour moi)
    Par fred0655 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/09/2007, 16h20
  3. Requete (trop ) compliquée ( pour moi )
    Par hisy dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 16/06/2006, 14h16
  4. Requete un peu compliqué pour moi
    Par passie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/04/2006, 16h08
  5. [SQL - ORACLE] Requete un peu compliquée (pour moi)
    Par Worldofdada dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/11/2005, 09h25

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