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 :

Deux opérations de groupement sur deux tables


Sujet :

Langage SQL

  1. #1
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut Deux opérations de groupement sur deux tables
    Bonjour,

    Je ne sais pas si c'est correcte mais j'ai fait une requete de groupement sur 2 tables.
    En fait je pars de ma table article et je vais sur ma table stock et ma table ventes et je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select article, min(date livraison), sum (qte en stock)
    from article, stock,ventes
    where article.ref = stock.ref
    and     article.ref = ventes.ref
    group by article
    j'ai fait quelques vérifications et les valeurs semlblent justes.
    Mais je trouve cela assez incroyable et j'ai un doute.

    merci de vos lumières

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    A part le syntaxe des jointures obsolète depuis plus de 20 ans, elle est correcte.
    Reste à savoir si elle correspond à la question posée ???

    Mais je trouve cela assez incroyable et j'ai un doute.
    Comme quoi le SQL n'est pas aussi tordu que certains veulent le laisser croire
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Bon ben c'est rassurant.

    par contre pourquoi dire que les jointures ont 20 ans

    je trouve cela plus lisible que les inner join.

    C'est quoi le plus récent pour vous ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    L'écriture des jointures au travers des "JOIN" est la norme SQL, et elle est bien plus logique que par les WHERE qui indique une sélection et non une relation (même si le résultat est le même, quoi que..).
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Je ne suis pas d'accord ce n'est pas correct.
    Il faut l'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        select art.article
             , coalesce(stk.qte_stock, 0) as qte_stock
             , vte.date_livraison
          from article art
     left join ( select ref, sum (qte_stock) as qte_stock
                   from stock
               group by ref) stk
            on stk.ref = art.ref
     left join ( select ref, min(date_livraison) as date_livraison
                   from ventes
               group by ref) vte
            on vte.ref = art.ref;
    Citation Envoyé par castorameur Voir le message
    je trouve cela plus lisible que les inner join.
    C'est quoi le plus récent pour vous ?
    Il n'y a pas de "pour vous".
    Il y a eu une première norme SQL:89 (89 pour 1989) avec les jointures à coup de virgule mais qui présente des problèmes de lisibilité, de distinctions des filtres et des jointures ainsi que quelques limites.
    Pour palier ces problème, la norme a évolué en SQL:92 avec l'introduction des mots clefs "join".

    Ce sont des choses que vous devez savoir en tant que freelance SQL-Server.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Bonjour merci de ces explications

    Ce sont des choses que vous devez savoir en tant que freelance SQL-Server
    Je suis freelance administration SQL-Server pas développeur SQL

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Je ne suis pas d'accord ce n'est pas correct.
    Il faut l'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        select art.article
             , coalesce(stk.qte_stock, 0) as qte_stock
             , vte.date_livraison
          from article art
     left join ( select ref, sum (qte_stock) as qte_stock
                   from stock
               group by ref) stk
            on stk.ref = art.ref
     left join ( select ref, min(date_livraison) as date_livraison
                   from ventes
               group by ref) vte
            on vte.ref = art.ref;
    j'avais précisé :
    Reste à savoir si elle correspond à la question posée ???
    puisque rien n'était indiqué
    Merci d'ajouter un sur les tags qui vous ont aidé

  8. #8
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    puisque rien n'était indiqué
    pardon

    la requête doit me donner la somme des mouvements de stock et la date de 1ère commande

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/12/2010, 13h34
  2. Réponses: 1
    Dernier message: 08/11/2010, 18h53
  3. faire deux totaux en SQL sur deux tables
    Par cantador dans le forum SQL
    Réponses: 3
    Dernier message: 18/03/2009, 22h04
  4. Requête sur deux champs provenant d'une meme table
    Par alphx dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/08/2008, 13h56
  5. Réponses: 1
    Dernier message: 30/07/2008, 15h11

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