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 :

Sélectionner Date la plus ancienne


Sujet :

MS SQL Server

  1. #1
    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 Sélectionner Date la plus ancienne
    Bonjour,

    j'ai deux enregistrements identiques (sauf ID bien sur) et je voudrais récupérer grâce à une ordre SELECT, celui qui a la date/heure la plus ancienne (grande).

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM TaTable WHERE DATE = (SELECT MAX(DATE) FROM TATABLE)

  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
    Mais oui, une sous-requête, pourquoi n'ai je pas pensé à ça avant ?

    Un grand merci

  4. #4
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    mets la balise résolu si c'est ok merci

  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
    Bonjour,

    L'ancienne solution fonctionne très bien lorsque qu'on veut récupérer le plus ancien élément d'une table, or ma table comporte des doublons (sauf ID) et je veut récupérer parmis ces doublons celui qui a la date la plus anciennes.

    exemple :

    1 DUPOND Joël 04/09/2006 17:18:00
    2 DUPOND Joël 04/09/2006 17:19:00
    3 DURAND Bertrand 04/09/2006 17:18:00
    4 DURAND Bertrand 04/09/2006 17:19:00

    Dans cet exemple il me faudra récupérer les enregistrements 2 et 4.

    J'ai essayé avec cette requête mais cela ne fonctionne pas, si cela est possible merci de m'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM TBClient 
    WHERE Nom IN (SELECT DISTINCT Nom FROM TBClient) 
    AND DateUpdate = (SELECT MAX(DateUpdate) FROM TBClient)
    Merci d'avance

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT TB.*
    FROM TBClient TB, 
    (SELECT Nom FROM TBClient, MAX(DateUpdate) AS MAXDT
    FROM TBClient
    group by Nom) SS
    where TB.NOM = SS.NOM
    AND TB.DateUpdate = SS.MAXDT

  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
    Salut,

    je teste ça demain (car je ne suis plus au boulot) et je le met en résolu si c'est le cas.

    Merci

  8. #8
    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
    J'ai essayé ta requête, elle a l'air interessante
    Mais une erreur me sort quand je l'exécute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'DateUpdate' n'est pas une option OPTIMIZER LOCK HINTS reconnue.
    Si tu as une idée ? Je suis preneur

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    jamais vu cette erreur.

    Tu es sur qu'elle est dsans le morceau de code que je t'ai envoyé ?

    Essaie de mettre DateUpdate entre [] pour voir, mais encore une fois je connais pas ton erreur. Une recherche sur google s'impose

  10. #10
    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,

    J'ai modifié un peu ta requête, et cela fonctionne parfaitement, enfin je dois encore tester dans mon environnement, mais la requête en elle même fonctionne.

    Voici la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT TB.*
    FROM TBClient TB,
    (SELECT TBClient.Nom, MAX(DateUpdate) AS MAXDT FROM TBClient  GROUP BY TBClient.Nom) SS
    WHERE TB.Nom = SS.Nom
    AND Datename(Day, TB.DateUpdate) = Datename(Day, getDate())
    AND TB.DateUpdate = SS.MAXDT
    J'ai rajouté une clause qui me permet de récupérer les enregistrements du jour avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND Datename(Day, TB.DateUpdate) = Datename(Day, getDate())
    En ce qui concerne l'erreur d'avant, jamais vu aussi, de toute manière l'informatique nous réserve toujours de trés belle surprise

    Merci pour tout et je te tiens au courant de la suite

  11. #11
    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
    C'est bon tout fonctionne correctement.
    Merci à tous

  12. #12
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 142
    Par défaut
    Bonjour, je ne comprend pas. J'ai repris un exemple de requête :

    SELECT * FROM <Matable> AS A1
    WHERE A1.<monchampdate> = (SELECT MAX(<monAutrechampdate>) FROM
    <nomServeur>.<ma base 2>.dbo.<matable2> ) ;
    Et l'analyseur de requête me renvoit : erreur de synthaxe

    Je précise ce que je veux faire :
    Je veux sélectionner dans une table qui provient d'access, les lignes dont un champ date est supérieur à une certaine date reférence.
    Cette date référence est la date la plus récente enregistrée dans une table se trouvant dans SQL Server 2005.

    L'objectif est d'alimenter par ajout successif la base SQL à partir de la base Access...

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

Discussions similaires

  1. [SQL] Obtenir la date la plus ancienne
    Par yakup.67 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/04/2018, 08h06
  2. [AC-2003] selection de la date la plus ancienne
    Par benoitXV dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/03/2010, 10h36
  3. [CR 2008] Comment trouver la date la plus ancienne
    Par campia dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 09/12/2009, 16h09
  4. Rechercher la date la plus ancienne
    Par Syrya dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/04/2008, 17h17
  5. [XI]Date la plus ancienne
    Par fan_de_crystal dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/05/2007, 17h14

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