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 :

fonction MAX sur une date


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Par défaut fonction MAX sur une date
    Re Re Re Re bonjour à tous,

    Mon probleme est le suivant
    lorsque je fais une select de ma table le résultat
    est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Ticket   etat       update_date
    ------------------------------------
    5494	  1	2006-07-10 10:09:56.717
    5494	  2	2006-07-10 10:10:06.467
    5494	  4	2006-07-10 10:12:52.59
    5494	  6	2006-07-11 10:13:02.42
    5494	  7	2006-07-11 10:13:04.827
    5494	  4	2006-07-11 10:13:41.327
    5494	  6	2006-07-12 10:13:49.717
    5494	  7	2006-07-12 10:19:41.78
    je voudrais qu'il me ramene pour chaque jour
    l'enregistrement de la plus grand date. exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Ticket   etat       update_date
    ------------------------------------
    5494	  4	2006-07-10 10:12:52.59
    5494	  4	2006-07-11 10:13:41.327
    5494	  7	2006-07-12 10:19:41.78

    Merci à vous

    Le savoir n'est rien sans celui des autres !!

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Quelque chose comme ceci (non testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT t1.*
    FROM dbo.matable t1
    JOIN (SELECT MAX (update_date) as maxdate FROM dbo.matable GROUP BY SELECT CAST(DATEDIFF(d,0,GETDATE()) AS DATETIME)) t2 ON t1.update_date = t2.maxdate

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 132
    Par défaut
    Re,

    Regarde cette discussion

  4. #4
    Membre confirmé Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Par défaut
    la discution que tu ma router n'est ma exactememnt mon problème

    en fait je pense que vous n'avez pas compris je me suis surement mal exprimé
    le resultat de mon code SQL Select * from matable est le suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Ticket   etat       update_date
    ------------------------------------
    5494	  1	2006-07-10 10:09:56.717
    5494	  2	2006-07-10 10:10:06.467
    5494	  4	2006-07-10 10:12:52.59
    5494	  6	2006-07-11 10:13:02.42
    5494	  7	2006-07-11 10:13:04.827
    5494	  4	2006-07-11 10:13:41.327
    5494	  6	2006-07-12 10:13:49.717
    5494	  7	2006-07-12 10:19:41.78
    en fait je veux "POUR CHAQUE JOUR" (je ne suis pas en train de crier) l'enregistrement de la date maximale

    Merci à vous !!!

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 132
    Par défaut
    Salut,

    ben tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM TaTable 
    WHERE Datename(Day, Date) = Datename(Day, getDate())
    AND Date = (SELECT MAX(Date) FROM TaTable)
    WHERE Datename(Day, Date) = Datename(Day, getDate()) permet de récupérer que les enregistrements du jour.
    AND Date = (SELECT MAX(Date) FROM TaTable) permet de récupérer la date la plus ancienne

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    voila ta requete:

    select MAX(update_date) as DateMaxParJour
    from taTable ttb
    join
    (select convert(varchar,update_date,103) as DateParJour from taTable
    group by convert(varchar,update_date,103)) A on A.DateParJour=convert(varchar,ttb.update_date,103)
    group by convert(varchar,update_date,103)


    A+
    serge
    PS: suis bien la synthaxe, ne remplace que 'taTable' par le vrai nom de ta table

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 132
    Par défaut
    En fait, aprés relecture de ma réponse, je pense qu'elle n'est pas adaptée à ta question, car elle prendra systématiquement le maximum de la date en cours.

    Essaye plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM TaTable PB, 
    (SELECT Date, MAX(Date) AS MAXDate FROM TaTable  GROUP BY Date) ST
    WHERE PB.Date = ST.Date
    AND PB.Date = ST.MAXDate
    En espérant que ça réponde à ta question

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

Discussions similaires

  1. [BI4] IDT - Filtre native max sur une date
    Par HudsonSaul dans le forum Designer
    Réponses: 1
    Dernier message: 01/06/2015, 17h47
  2. Max sur une date par ID
    Par Nikimizi dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/09/2014, 10h26
  3. Requête SQL avec function MAX() sur une date
    Par mehdiyou1985 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/12/2012, 21h52
  4. Select avec max sur une date
    Par olibara dans le forum Requêtes
    Réponses: 10
    Dernier message: 06/07/2010, 07h18
  5. fonction max() sur une chaine (string)
    Par speedev dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/03/2009, 11h30

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