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 :

[SQL SERVER] Afficher la dernière ligne de vente d'un client


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Par défaut [SQL SERVER] Afficher la dernière ligne de vente d'un client
    Bonjour,

    Je possède 2 tables :
    [Kanabeach$Sales Header] -> Entetes des commandes
    [Kanabeach$Sales Line] -> Lignes des commandes

    Je voudrais extraire une ligne des lignes de ventes pour CHAQUE client :
    Les citères sont les suivants :
    Prendre la ligne qui comporte le premier numéro de commande [Kanabeach$Sales Line].[Document No_] (le numéro le plus petit donc)
    Et la ligne qui a le numéro de ligne le plus élevé
    [Kanabeach$Sales Line].[Line No_]

    Actuellement ma requête est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT
    *
    FROM
      [Kanabeach$Sales Line],
      [Kanabeach$Sales Header]
     
    WHERE
     
    [Kanabeach$Sales Line].[Document No_] = [Kanabeach$Sales header].No_
    AND [Kanabeach$Sales Line].[PfsSalesperson Code] > '000'
    AND [Kanabeach$Sales Line].[PfsSalesperson Code] < '012'
    AND [Kanabeach$Sales Line].[PfsOrder Type Code] = 'PRECO'
    AND [Kanabeach$Sales Header].[Order Date] < '20091115'
    Je ne sais pas comment extraires les enregistrements selon mes critère ci-dessus

    Merci de m'aider

  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 986
    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 986
    Billets dans le blog
    6
    Par défaut
    Quelle horreur votre base avec des noms mal formés contenant des dollars et des blancs !!!! Vous cherchez les ennuis.

    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT *
    FROM   [Kanabeach$Sales Header] AS H
           INNER JOIN [Kanabeach$Sales Line] AS Llow
                 ON Llow.[Document No_] = H.[No_]
           INNER JOIN [Kanabeach$Sales Line] AS Lhigh
                 ON Lhigh.[Document No_] = H.[No_]
    WHERE Llow.[PfsSalesperson Code] = (SELECT MIN(???) 
                                        FROM   [Kanabeach$Sales Line] 
                                        WHERE  [Document No_] = H.[No_])
      AND Lhigh.[PfsSalesperson Code] = (SELECT MAX(???) 
                                         FROM   [Kanabeach$Sales Line] 
                                         WHERE  [Document No_] = H.[No_]) 
    AND ...
    AND H.[ORDER Date] < '20091115'
    Mais sans le DDL de vos tables difficile de vous aider...
    Merci de respecter la charte de postage : http://www.developpez.net/forums/d96...vement-poster/

    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 habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Par défaut
    En fait l'architecture ce n'est pas moi qui l'est défini, c'est larchitecture de notre ERP navision.

    Pour ce qui est de la requête, je pense pas que ce soit ça, ya un ti problème de compréhension pour résumer, ma table des lignes de ventes est comme ceci

    No commande N° ligne No Client N°article Code representant N° ligne matrice type commande
    CDV0000132 110002 CL01711 ART-0000313 1 110000 PRECO
    CDV0000132 110003 CL01711 ART-0000313 1 110000 PRECO
    CDV0000132 120000 CL01711 ART-0000314 1 120000 PRECO
    CDV0000132 120001 CL01711 ART-0000314 1 120000 PRECO
    CDV0000132 120002 CL01711 ART-0000314 1 120000 PRECO
    CDV0000132 120003 CL01711 ART-0000314 1 120000 PRECO
    CDV0000133 10002 CL01719 ART-0000206 1 10000 PRECO
    CDV0000133 10003 CL01719 ART-0000206 1 10000 PRECO
    CDV0000133 20000 CL01719 ART-0000209 1 20000 PRECO
    CDV0000133 20001 CL01719 ART-0000209 1 20000 PRECO
    CDV0000133 20002 CL01719 ART-0000209 1 20000 PRECO
    CDV0000134 10000 CL01719 ART-0000060 2 10000 PRECO
    CDV0000134 10001 CL01719 ART-0000060 2 10000 PRECO
    CDV0000134 10002 CL01719 ART-0000060 2 10000 PRECO
    CDV0000134 10003 CL01719 ART-0000060 2 10000 PRECO
    CDV0000134 10004 CL01719 ART-0000060 2 10000 PRECO
    CDV0000134 10005 CL01719 ART-0000060 2 10000 PRECO
    CDV0000134 20000 CL01719 ART-0000062 2 20000 PRECO
    CDV0000134 20001 CL01719 ART-0000062 2 20000 PRECO
    CDV0000135 10000 CL01719 ART-0000127 2 10000 PRECO
    CDV0000135 10001 CL01719 ART-0000127 2 10000 PRECO
    CDV0000135 10002 CL01719 ART-0000127 2 10000 PRECO
    CDV0000135 10003 CL01719 ART-0000127 2 10000 PRECO
    CDV0000135 20000 CL01719 ART-0000100 2 20000 PRECO


    Il faudrait obtenir ceci :

    No commande N° ligne No Client N°article Code representant N° ligne matrice type commande
    CDV0000132 120003 CL01711 ART-0000314 1 120000 PRECO
    CDV0000133 20002 CL01900 ART-0000209 1 20000 PRECO
    CDV0000134 20001 CL01719 ART-0000062 2 20000 PRECO


    C'est à dire que pour chaque représentant, pour un client il faut la ligne de vente de sa PREMIERE commande (numéro de commande le plus petit des commandes du client) qui a le numéro de ligne le plus élevé .

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Par défaut
    Avec la requête suivante j'arrive à extraire les dernières lignes de ventes de chaque commande d'un client mais pas UNIQUEMENT la dernière ligne de vente de la première commande de chaque client

    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
     
     
    SELECT
    *
    FROM
      [Kanabeach$Sales Line] L,
      [Kanabeach$Sales Header] H
     
    WHERE
     
    L.[Document No_] = H.No_
    AND L.[PfsSalesperson Code] > '000'
    AND L.[PfsSalesperson Code] < '012'
    AND L.[PfsOrder Type Code] = 'PRECO'
    AND H.[ORDER Date] < '20091115'
    AND L.[Document No_] = (SELECT MIN([Document No_]) 
                                        FROM   [Kanabeach$Sales Line] 
                                        WHERE  [Document No_] = H.[No_])
    AND L.[Line No_] = (SELECT MAX([Line No_]) 
                                         FROM   [Kanabeach$Sales Line] 
                                         WHERE  [Document No_] = H.[No_])

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/12/2007, 14h13
  2. [VB 6.0 + sql server] pb insertion de lignes trop nombreuses
    Par flores dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/10/2006, 16h29
  3. [SQL Server 2005] Administration en ligne
    Par myLittleTools dans le forum Administration
    Réponses: 3
    Dernier message: 27/06/2006, 17h17
  4. [SQL Server 2000] exclusion dernière date dans un between?
    Par biloumousse dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/04/2006, 17h11
  5. afficher la dernière ligne d'un TLisBox
    Par richard038 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/10/2005, 09h31

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