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 :

MAX(date) me renvoie 2 dates


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Femme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2019
    Messages : 20
    Points : 19
    Points
    19
    Par défaut MAX(date) me renvoie 2 dates
    Bonjour,
    J'ai cette requête pour trouver la date la plus récente de lettrage.
    Sur la facture XX, il y a eu deux lettrages.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT MAX(LETTRAGE.DATE_LETTRAGE)
    	,LETTRAGE.NUM_0
    	,LETTRAGE.MTC_0
    FROM LETTRAGE
    WHERE LETTRAGE.NUM_0 = 'A1912VTF01390'
    GROUP BY LETTRAGE.DATE_LETTRAGE
    	,LETTRAGE.NUM_0
    	,LETTRAGE.MTC_0
    ce qui me donne ce résultat :
    Nom : lettrage.JPG
Affichages : 104
Taille : 14,7 Ko

    Que modifier pour qu'il me ramène une seule ligne, celle du 06/01/2020 ?

    Je vous remercie par avance,

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Il ne faut pas mettre la colonne que laquelle vous faites un agrégat dans le group by.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2019
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    je ne l'avais pas mise au début, et il me donne la date min :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT MAX(LETTRAGE.DATE_LETTRAGE)
    	,LETTRAGE.NUM_0
    	,LETTRAGE.MTC_0
    FROM LETTRAGE
    WHERE LETTRAGE.NUM_0 = 'A1912VTF01390'
    GROUP LETTRAGE.NUM_0
    	,LETTRAGE.MTC_0
    Résultat :
    Nom : lettrage.JPG
Affichages : 105
Taille : 13,2 Ko

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Il y a de fortes chances que votre colonne doit en VARCHAR2 et non pas en DATE.
    Faites ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      SELECT MAX(to_date(DATE_LETTRAGE, 'dd/mm/yyyy'))
           , NUM_0
           , MTC_0
        FROM LETTRAGE
       WHERE NUM_0 = 'A1912VTF01390'
    GROUP BY NUM_0
           , MTC_0

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 767
    Points : 10 776
    Points
    10 776
    Par défaut
    Bonjour, quel est le format de votre colonne contenant la date ?
    [Edit] télescopage avec la réponse ci-dessus[/edit]

  6. #6
    Membre à l'essai
    Femme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2019
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Hello,
    J'étais sur cette piste en attendant vos réponses, je suis contente
    Là où je suis moins contente, c'est que je me suis plantée de forum, je m'en excuse, je ne suis pas Oracle... mais transaq SQL.

    Mon format était (CHAR(10),DATE,103).

    Je vais chercher l'équivalent de to_date en TSQL

    Merci

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    De mémoire c'est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      SELECT MAX(convert(datetime, DATE_LETTRAGE, 103))
           , NUM_0
           , MTC_0
        FROM LETTRAGE
       WHERE NUM_0 = 'A1912VTF01390'
    GROUP BY NUM_0
           , MTC_0

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

Discussions similaires

  1. problème max(date) et champs non correspondant
    Par sorenson dans le forum Requêtes
    Réponses: 3
    Dernier message: 07/04/2007, 14h01
  2. Problème de max (date)
    Par valauga dans le forum Deski
    Réponses: 2
    Dernier message: 04/04/2007, 08h29
  3. [SQL2005] group by et max(date)
    Par BOUBOU81 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/12/2006, 16h54
  4. Select Avec Max(date)
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/08/2006, 17h26
  5. [VB6]Requete sql access:max (date and time)
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 05/06/2006, 09h42

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