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

Langage SQL Discussion :

comment appliquer un filtre par date avec informations hétérogènes


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut comment appliquer un filtre par date avec informations hétérogènes
    Bonjour les amis;

    voilà je dispose d'une table qui contient plusieurs lignes contenant des informations qui peuvent se répéter (le cas de la première colonne) ainsi que des informations differentes sur le reste des autres colonnes, ci-dessous un apperçu de la table1:

    -----------------------------------------------
    |code| |date| |prix1| |prix2| |observation|

    TR01 01/08/2010 100 200 mauvais
    TR01 02/08/2010 300 500 bon
    TR01 04/08/2010 200 400 moyen
    TR01 05/08/2010 500 300 bon
    TR02 01/08/2010 500 300 bon
    TR02 02/08/2010 700 200 bon
    TR02 03/08/2010 800 400 excelent
    -----------------------------------------------

    ma question est, comment puis-je faire ressortir les lignes distincts concernant la colonne code avec la date la plus recente, c'est à dire dans mon cas les lignes 4 et 7

    merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    Il faut faire une agrégation, mais je pense qu'une simple requete d'agrégation ne marcherais dans le cas présent.
    Perso, je partirais bien sur une requete composée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t1.* FROM table1 t1
    INNER JOIN 
        (SELECT code, MAX(date) FROM table1 GROUP BY code) t2 
        ON t1.code=t2.code AND t1.date=t2.date
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    bonjour sevyc64,

    je viens d'essayer cette agregation, la partie en rouge renvoi une erreur c'est comme s'il y a un souci dans la requete comme quoi la partie t.date2 n'est pas prise en charge:

    SELECT t1.* FROM table1 t1
    INNER JOIN
    (SELECT code, MAX(date) FROM table1 GROUP BY code) t2
    ON t1.code=t2.code AND t1.date=t2.date
    tu peux verifier stp ??

    merci

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    Possible, essaye avec ça (j'ai pas de bdd sous la main pour faire le test) :
    SELECT t1.* FROM table1 t1
    INNER JOIN
    (SELECT code, MAX(date) as datemax FROM table1 GROUP BY code) t2
    ON t1.code=t2.code AND t1.date=t2.datemax
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    salut sevyc64,

    c'est bon ça fonctionne

    merci bcp

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

Discussions similaires

  1. Recherche avec un filtre par date
    Par mehdiyou dans le forum SQL
    Réponses: 2
    Dernier message: 18/04/2008, 14h08
  2. Problème de filtre sur date avec ADOQuery
    Par lingli dans le forum Bases de données
    Réponses: 12
    Dernier message: 30/04/2006, 15h40
  3. Comment gérer des services par programmation avec Delphi ?
    Par isachat666 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 18/12/2005, 18h54
  4. [Date] Comment transformer mon String en date avec newDate?
    Par Devil666 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/06/2005, 16h50
  5. Comment faire une division par 5 avec les decalages
    Par Zaion dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/11/2004, 17h33

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