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 :

Comment faire ma requête SELECT ?


Sujet :

MS SQL Server

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut Comment faire ma requête SELECT ?
    Bonjour,

    J'ai une table de la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    + ID +    MyDATE  + POINTS +
    + 1  + 01/01/2006 + 1000     +
    + 2  + 05/04/2005 + 150      +
    + 1  + 04/04/2006 + 300      +
    [...]
    Je souhaite récupérer pour chaque ID la ligne contenant la dernière date, à savoir, faire une requête SQL qui me retournerai :
    1 04/04/2006 1000
    2 05/04/2005 150
    Il faut utiliser quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ID, MAX(MyDATE) FROM MyTable GROUP BY ID ORDER BY ID ASC
    Comment puis-je faire ?

    Merci,
    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    qqchose comme (c'est pas super beau mais ca devrait marcher)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select t.*
    from mytable t inner join 
    (SELECT ID, MAX(MyDATE)  theDate FROM MyTable GROUP BY ID) M
    On m.ID = T.ID
    and m.TheDate = T.MyDate
    order by t.ID DESC

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut
    Salut,

    Je l'ai fais avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT p1.ID_FOYER, p1.TOTAL_POINTS FROM POINTS_CADEAUX_FOYER p1 WHERE EXISTS (
    	SELECT sr.ID_FOYER, sr.DATE_AJOUT FROM (
    		SELECT ID_FOYER, MAX(DATE_AJOUT) AS DATE_AJOUT FROM POINTS_CADEAUX_FOYER GROUP BY ID_FOYER
    	) sr
        	WHERE sr.ID_FOYER=p1.ID_FOYER AND sr.DATE_AJOUT=p1.DATE_AJOUT
    )
    ORDER BY ID_FOYER
    Je ne sais pas si c'est le plus optimisé... mais ça marche ^^

    Si vous avez une requête un peu plus optimisée, je ne suis pas contre

    Merci,
    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Si j'ai bien compris, ça pourrait marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TaTable a WHERE a.date = (SELECT MAX(b.date) FROM TaTable b WHERE b.id=a.id)
    Mais je ne sais pas quelle solution est la plus rapide

Discussions similaires

  1. Comment faire une requête Mysql
    Par Xavier dans le forum C++Builder
    Réponses: 5
    Dernier message: 01/02/2007, 17h07
  2. [C#] Comment faire un simple SELECT à SQL Server ?
    Par Rodie dans le forum Accès aux données
    Réponses: 15
    Dernier message: 30/10/2006, 18h04
  3. comment faire un insert, + select + update dans la meme requete
    Par jam92400 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 27/06/2006, 18h33
  4. [SQL] Comment faire ma requête
    Par kaiserazo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/05/2005, 10h39

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