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 :

probleme requete de recuperation de donnée


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Points : 144
    Points
    144
    Par défaut probleme requete de recuperation de donnée
    salut,

    J'ai une table qui contient des statut d'individus , avec des date elle se presente comme ceci :

    numind date status pays
    12 12/08/2007 12:00:00 A FR
    12 12/08/2007 12:00:00 C FR
    12 22/08/2007 12:00:58 C FR
    12 22/08/2007 12:00:58 E FR
    13 15/08/2007 13:00:00 A FR

    ce que je voudrais c'est pour un individus recuperer sont status à la premiere date et derniere date,
    mais si j'ai deux date identique il y a un ordre de recuperation de la ligne en fonction du statut (si c'est une min date en priorité je dois recuperer le A ; sinon le C sinon le E)
    par contre si c est la max date je dois recuperer le E , C , A)
    en gros je voudrais cela à la sortie
    12 12/08/2007 12:00:00 A FR
    12 22/08/2007 15:00:00 E FR
    13 15/08/2007 13:00:00 A FR
    Je suis un peu perdu

    merci de votre aide

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    select numind, status, pays, max(date), min(date)
    from table
    group by numind,status,pays;

    sa devrais marcher, a moins que tu n'ai un individu qui est plusieurs statut ou pays auquel cas tu aurai plusieurs enregistrement avec la meme personne.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Points : 144
    Points
    144
    Par défaut
    en faite j'ai modifié le post c'est pas aussi simple

  4. #4
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    J'aimerai savoir si les relations d'ordre sont définies sur les caractères.
    Par exp : (A<C<E).

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    Ok, un individu peut avoir plusieurs status....

    si les relations d'ordre sont définies sur les caractères comme le demande notre ami ALI, tu peut essayer ça mais je garanti rien (fais un bye que j'ai pas fai de sql....)

    select numind, status, pays, max(date)
    from table
    group by numind,status,pays
    having status = min(status)
    union
    select numind, status, pays, min(date)
    from table
    group by numind,status,pays
    having status = max(status)

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Points : 144
    Points
    144
    Par défaut
    en faite pour l'ordre
    c'est si j'ai deux date identique pour un individu quand je select ma min date
    alors je dois garder la ligne avec A sinon celle avec C sinon celle avec D,
    si si j'ai deux date identique pour un individu quand je select ma max date
    alors je dois garder la ligne avec D sinon celle avec C sinon celle avec A.

  7. #7
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    Citation Envoyé par donny Voir le message
    en faite pour l'ordre
    c'est si j'ai deux date identique pour un individu quand je select ma min date
    alors je dois garder la ligne avec A sinon celle avec C sinon celle avec D,
    si si j'ai deux date identique pour un individu quand je select ma max date
    alors je dois garder la ligne avec D sinon celle avec C sinon celle avec A.
    Ca, on avait bien compris. Ma question pourrait se traduire par est-il possible d'utiliser min et max sur des caractères ? Dans ce cas, essaie d'exécuter cette requête qui est censée de retourner la date max avec le caractère max (E>C>A) :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select t1.numind, max(t1.tonstatus), t1.pays, max(t1.date)
    from tatable t1
    group by t1.numind, t1.pays
    having t1.date = (select max(t2.date) 
                      from tatable t2
                      group by t2.numind, t2.pays);
    Tu fais la même chose pour le min.
    Concernant la requête de croco, il faut intervertir les having, de plus la condition
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    having tonstatus = max(tonstatus)
    me turlupine un peu. Je ne pense pas que cela passera car il faut une requête imbriquée pour extraire le max(status), je ne sais pas si on peut l'écrire directement.
    PS : Je te conseille de changer le nom du champ status car c'est un mot réservé en SQL.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/09/2012, 23h04
  2. recupere des données d'une requete
    Par torNAdE dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/07/2006, 10h38
  3. [Tableaux] probleme de recuperation de données
    Par nebil dans le forum Langage
    Réponses: 18
    Dernier message: 07/07/2006, 16h27
  4. [Debutant]recupere les données d'un requete dans le form
    Par [thebadskull] dans le forum Access
    Réponses: 1
    Dernier message: 04/05/2006, 10h53
  5. [Tableaux] Probleme de recuperation de données
    Par BernardT dans le forum Langage
    Réponses: 14
    Dernier message: 14/11/2005, 22h27

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