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 averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    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 852
    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 852
    Points : 52 992
    Points
    52 992
    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 +

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    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 habitué
    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
    Points : 143
    Points
    143
    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 averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    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 852
    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 852
    Points : 52 992
    Points
    52 992
    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 +

+ 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