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

Développement SQL Server Discussion :

Groupage, sur deux tables


Sujet :

Développement SQL Server

  1. #1
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 496
    Points : 2 867
    Points
    2 867
    Par défaut Groupage, sur deux tables
    Bonjour tout le monde,

    En voyant la colonne ShipName dans la table dbo.Orders de Northwind, pour établir le poids commandé par client il peut être tentant de s'y prendre comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CustomerID, ShipName, Sum(Freight) AS [Sum Freight]
    FROM dbo.Orders
    GROUP BY CustomerID, ShipName
    Mais pas de bol, ALFKI est réparti sur deux lignes, car il y a Afreds et Alfred's.

    <TABLE>
    <row>
    <col>CustomerID</col><col>ShipName</col><col>Sum Freight</col>
    </row>
    <row>
    <col>ALFKI</col><col>Alfreds Futterkiste</col><col>29,46</col>
    </row><row>
    <col>ALFKI</col><col>Alfred's Futterkiste</col><col>196,12</col>
    </row>
    </TABLE>


    Mais euh ... En bas de la page de saisie du forum, il y a pourtant écrit que les balises BB sont activées ? Elles ne sont pas bonnes, mes balises ?
    Elles ressemblent à ce que j'ai trouvé là :
    https://easy-design.net/wiki/bbcode-faire-un-tableau

    Et à propos pour passer de la sortie SSMS au tableau BB j'ai appliqué la méthode "marteau-burin". Existe-t-il plus efficace, qu'on n'ait pas besoin de programmer soi-même ?


    Je serais tenté de dire que celui qui a créé la base NORTHWIND ne savait pas que le nom de client, ça se met dans la table client, et de rédiger plutôt la requête comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT dbo.Orders.CustomerID, 
    COUNT(dbo.Orders.CustomerID) AS NbCmd, 
    SUM(Freight) AS [SUM FREIGHT], 
    dbo.Customers.CompanyName
    FROM dbo.Orders JOIN dbo.Customers
    ON dbo.Orders.CustomerID = dbo.Customers.CustomerID
    GROUP BY dbo.Orders.CustomerID, dbo.Customers.CompanyName
    Et ça donne le même tonnage pour ALFKI, mais sur une seule ligne. Vu le succès de la démonstration précédente, je vais m'abstenir.

    En s'y prenant comme ça, il ne me semble pas qu'il y ait un inconvénient à mettre deux champs pour le groupage ?
    ***
    Au fait il y a quelque chose qui m'intrigue avec cette requête.
    J'ai demandé à SSMS de la sauvegarder comme "Commandes par client.sql".
    Bon, dans un nouvel onglet j'ouvre ce fichier, ça m'affiche bien les commandes par client.
    Ce qui m'intrigue, c'est que le fichier comporte neuf octets : un saut de ligne, un espace, et trois autres sauts de ligne. Et c'est tout.
    Et si je mets un guillemet à la place de l'espace, on ne trouve plus les enregistrements.
    C'est quoi, de la transmission de pensée ?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    C'est une base de test. Les erreur que tu voit sont faites exprès pour justement montrer des problématiques et comment les résoudre !

    Entre nous Northwind c'était il y a 25 ans.... depuis tu as mieux comme bases de test pour SQL Server...
    https://learn.microsoft.com/en-us/sq...l-server-ver16


    A +

  3. #3
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 496
    Points : 2 867
    Points
    2 867
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    C'est une base de test. Les erreur que tu voit sont faites exprès pour justement montrer des problématiques et comment les résoudre !
    Ah, ben oui ...
    Je suis tellement habitué à marcher droit que l'intérêt de montrer comment ça fait de rouler dans le fossé m'avait échappé.


    Entre nous Northwind c'était il y a 25 ans.... depuis tu as mieux comme bases de test pour SQL Server...
    https://learn.microsoft.com/en-us/sq...l-server-ver16


    A +
    Ah, j'ai passé un bout de temps, à trouver Northwind, et je ne suis pas tout-à-fait sûr d'être passé par là.
    Je prends bonne note, merci.

    Il n'a plus été question de mes deux champs pour le groupage, donc je suppose que ça baigne.

    Merci pour tout.

    Euh, une idée au sujet de cette histoire de balises BB ?

    Et y a-t-il quelque chose à savoir au sujet de la sauvegarde d'une requête par SSMS ?

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

Discussions similaires

  1. groupage sur deux champs d’1 table
    Par 810mcu dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/06/2008, 17h56
  2. Cumul sur deux tables
    Par lper dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/11/2004, 16h02
  3. Comptez sur deux tables en même temps
    Par genova dans le forum Langage SQL
    Réponses: 12
    Dernier message: 13/09/2004, 19h58
  4. trigger sur deux tables
    Par Shabata dans le forum Développement
    Réponses: 4
    Dernier message: 04/05/2004, 17h55
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 17h53

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