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 :

Select selon le max d'une colonne


Sujet :

Développement SQL Server

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 205
    Points : 89
    Points
    89
    Par défaut Select selon le max d'une colonne
    J'ai une table avec une clé étrangère, une colonne donnant un prix et deux colonnes donnant des dates (une date d'ajout à la table et une date de MàJ à la table)

    Je souhaite obtenir le prix pour chaque clé étrangère (le code article) pour la date la plus récente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select T_HistoryEK.IdArtikelvarianten, EKPreis
    from T_HistoryEK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select T_HistoryEK.IdArtikelvarianten, MAX(T_HistoryEK.Add_Date
    from T_HistoryEK
    group by T_HistoryEK.IdArtikelvarianten
    order by IdArtikelvarianten)
    J'aimerai donc réunir ces deux requêtes afin de faire correspondre la date d'ajout la plus récente au prix de l'article (EKPreis) pour chaque clé d'article (IdArtikevlvarianten).

    Si j'utilise cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select T_HistoryEK.IdArtikelvarianten As article, T_HistoryEK.EKPreis, MAX(T_HistoryEK.Add_Date)
    from T_HistoryEK
    group by T_HistoryEK.IdArtikelvarianten, T_HistoryEK.EKPreis
    order by T_HistoryEK.IdArtikelvarianten
    J'obtiens la bonne date mais plusieurs lignes avec les différents prix.

    IdHistoryEK / IdArtikelvarianten / IdAdressen / GueltigabDatum / EKPreis / Bemerkung / Add_User / Add_Date / Upd_User
    1 / 1 / 49 / 1998-05-01 00:00:00.000 / 0,72 / sa / 1998-05-05 16:34:51.000 / CERVEAU
    2 / 2 / 83 / 1998-05-06 00:00:00.000 / 2,02 / sa / 1998-05-05 16:40:30.000 / Dutfoy01
    3 / 5 / 88 / 1998-06-09 00:00:00.000 / 4,88 / sa / 1998-06-08 12:12:36.000 / sa
    4 / 6 / 70 / 1999-09-01 00:00:00.000 / 0,79 / sa / 1998-06-08 12:14:21.000 / CERVEAU
    5 / 7 / 84 / 1998-06-09 00:00:00.000 / 1,4 / sa / 1998-06-08 12:23:16.000 / sa
    6 / 8 / 83 / 1998-06-09 00:00:00.000 / 1,69 / sa / 1998-06-08 12:24:38.000 / CERVEAU

  2. #2
    Débutant
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 205
    Points : 89
    Points
    89
    Par défaut
    Si je ne met pas le prix ->
    1 2006-04-05 14:57:40.000
    2 / 2013-09-11 08:44:37.817
    3 / 2010-04-26 10:23:52.000
    5 / 1998-06-08 12:12:36.000
    6 / 2014-05-12 15:54:58.600
    7 / 1998-06-08 12:23:16.000
    8 / 2009-01-13 17:12:30.000
    Avec le prix ->
    1 / 0,702 / 2005-08-19 11:18:51.000
    1 / 0,72 / 1998-05-05 16:34:51.000
    1 / 0,79 / 1999-09-03 11:58:58.000
    1 / 0,85 / 2000-11-28 11:45:25.000
    1 / 0,8712 / 2005-08-25 17:38:05.000
    1 / 0,88 / 1999-10-04 15:18:42.000
    1 / 0,93 / 2000-01-04 14:37:13.000
    1 / 0,9495 / 2005-12-27 11:35:28.000
    1 / 0,95 / 2000-08-14 12:28:39.000
    1 / 0,98 / 2000-06-05 15:16:20.000
    1 / 0,98917 / 2006-02-13 15:43:59.000
    1 / 0,99645 / 2006-04-05 14:57:40.000
    1 / 1,01 / 2000-05-10 15:24:33.000
    1 / 1,033 / 2005-02-04 11:20:01.000
    1 / 1,035 / 2005-10-18 17:59:53.000
    2 / 1,672 / 2007-02-21 09:43:47.000

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Cherche un peu sur ce forum ou dans Langage SQL, cette question a déjà été maintes fois posée et résolue.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 205
    Points : 89
    Points
    89
    Par défaut
    Effectivement, en cherchant et en adaptant, j'ai trouvé et obtenu ceci:

    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 T_HistoryEK.IdHistoryEK, T_HistoryEK.EKPreis, T_HistoryEK.IdArtikelvarianten,  T_HistoryEK.Add_Date
    from T_HistoryEK
     
    inner join 
    	(
    		Select max(T_HistoryEK.IdHistoryEK) as max_id, T_HistoryEK.IdArtikelvarianten
    		from T_HistoryEK
    		group by T_HistoryEK.IdArtikelvarianten
     
    ) tmp
    		on tmp.max_id=T_HistoryEK.IdHistoryEK
    		and tmp.IdArtikelvarianten=T_HistoryEK.IdArtikelvarianten
     
    order by IdArtikelvarianten
    Encore merci.

Discussions similaires

  1. [AC-2003] Garder une ligne sur 8, selon le max d'une colonne
    Par alex3084 dans le forum Access
    Réponses: 3
    Dernier message: 12/04/2012, 19h40
  2. Requete select avec MAX d'une colonne.
    Par lolymeupy dans le forum Requêtes
    Réponses: 15
    Dernier message: 08/08/2008, 10h07
  3. max d'une colonne d'une matrice
    Par toto2022 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 24/01/2007, 22h42
  4. Réponses: 2
    Dernier message: 01/12/2006, 10h09
  5. Requête SELECT avec deux champs dans une colonne ??
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 08/06/2006, 10h41

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