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

MS SQL Server Discussion :

[SQL SERVER 2000] Extraire le meilleur résultat par magasin


Sujet :

MS SQL Server

  1. #1
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 462
    Par défaut [SQL SERVER 2000] Extraire le meilleur résultat
    Bonjour,

    Voici une requete qui me récupère les numéros de tickets de caisse et leurs montants, trier en décroissant càd du plus fort montant au faible et ce par magasin.

    Mon problème est que j'ai 100 magasins et que je voudrais extraire seulement le meilleure ticket de chaque magasin de telle sorte que mon résultat aura comme nombre de ligne = 100.

    La requête que j'ai étayé me permet d'extraire tous les tickets, et j'ai plus de 10000 lignes;

    quelqu'un sait extraire que le meilleure montant de chaque magasin.

    Merci d'avance pour votre aide

  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 997
    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 997
    Billets dans le blog
    6
    Par défaut
    Quelque chose ceomme :

    SELECT MAX(SOMME), ???
    FROM
    (
    SELECT M_libelle, C_libelle, P_numero, sum(P_CAttc) AS SOMME
    FROM piece
    LEFT JOIN Magasin ON P_entrepot = M_entrepot
    LEFT JOIN commerciaux ON C_commercial = P_Commercial
    WHERE P_datepiece BETWEEN "01/01/2007" AND "02/01/2007" AND P_naturepiece="Vente"
    GROUP BY M_libelle, C_libelle, P_numero
    )

    ou ??? est la clef du magazin.

    SVP respectez la charte de postage : http://www.developpez.net/forums/showthread.php?t=96701

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 462
    Par défaut
    Bonjour Mr Fréderic,
    Merci pour votre réponse, j'ai adapté votre solution mais ça ne marche pas j'ai une erreur, il n'accepte pas la requête imbriqué au niveau du "FROM"

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Par défaut
    Citation Envoyé par casavba Voir le message
    j'ai adapté votre solution mais ça ne marche pas j'ai une erreur, il n'accepte pas la requête imbriqué au niveau du "FROM"
    Peux tu poster ton code ?

  5. #5
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 462
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Quelque chose ceomme :

    SELECT M_libelle,MAX(SOMME)
    FROM
    (
    SELECT M_libelle, C_libelle, P_numero, sum(P_CAttc) AS SOMME
    FROM piece
    LEFT JOIN Magasin ON P_entrepot = M_entrepot
    LEFT JOIN commerciaux ON C_commercial = P_Commercial
    WHERE P_datepiece BETWEEN "01/01/2007" AND "02/01/2007" AND P_naturepiece="Vente"
    GROUP BY M_libelle, C_libelle, P_numero
    )


    Y a une petite erreur dans cette requete vu que la sous requete n'est pas renommé, ceci dit je l'ai corrigé.


    Merci pour votre aide

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 997
    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 997
    Billets dans le blog
    6
    Par défaut
    PS: je viens de lire la charte mais je ne vois pas pourquoi je ne l'ai pas respecté
    Extrait du post :
    http://www.developpez.net/forums/showthread.php?t=96701

    Poster le SQL DDL de la définition de vos objets :

    C'est facile avec SQL Server :
    Dans Entreprise Manager, clic droit sur la table "Toutes les tâches / Générer un script SQL".
    Cela permet aux personnes qui tent de vous répondre :
    1) de mieux comprendre votre problème (nom clair des objets)
    2) de reproduire votre problématique sur leur machine pour mieux vous aider !

    De la même façon, un jeu d'essais tout prêt (ordres SQL INSERT) permet de tester les solutions proposées.
    Vous pouvez vous aider de la procédure suivante pour reconstituer un tel jeu d'essais :
    http://vyaskn.tripod.com/code/generate_inserts.txt

    Peut être quelques problèmes occulaires ???

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/11/2006, 08h14
  2. extraire une table d'une base sql server 2000
    Par MAJIK_ENIS dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/04/2006, 22h13
  3. [SQL server 2000] Résultat d'un checkdb
    Par Cyborg289 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 08/02/2006, 09h24
  4. [SQL SERVER 2000]Récupération du résultat d'un select.
    Par gwadakillah dans le forum Langage SQL
    Réponses: 5
    Dernier message: 24/01/2006, 13h35
  5. fonction utilisateur non reconue par sql server 2000
    Par ouedmouss dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/09/2005, 07h46

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