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

SQL Procédural MySQL Discussion :

Requete (trop ) compliquée ( pour moi )


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Par défaut Requete (trop ) compliquée ( pour moi )
    Bonjour

    J'ai essayé mais je n'y arrive pas ...
    Je précise que je suis obligé de travailler en Mysql 3.14. donc pas de ss-rq !

    Voila le topo.

    J'ai une table suggestions :

    sug_id
    sug_desc
    sug_date
    ...

    Une table estimations liée :

    est_id
    est_sug_id ( ma clé étrangère provenenant de suggestions)
    est_date
    ...

    Et pour finir une table notes liée :

    not_id
    not_sug_id ( ma clé étrangère provenenant de suggestions)
    note_date

    est_date est la date ou la suggestion est émise.
    Quand une estimation est attachée à une suggestion, je crée un ligne dans estimation avec la date du jour.

    Ce qui implique que si aucune estimation n'a été réalisée pour une idée, elle ne se trouve pas dans cette table ...

    Idem pour note.

    L'idée est de remonter les 10 suggestions oubliées càd celle pour lesquelles la date la plus récente en base ( parmi sug_date, est_date , not_date ) est la plus ancienne.

    Si vous avez lu jusqu'ici , merci déjà pour votre patience .

  2. #2
    Membre confirmé
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Par défaut
    Citation Envoyé par hisy
    la date la plus récente en base [...] est la plus ancienne
    Moi pas comprendre lol

  3. #3
    Membre éclairé Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Par défaut
    He ben en fait pour chaque ecriture j'ai une nouvelle date .
    Je peux donc avoir 3 dates pour une suggestion donnée.

    Je veux les 10 suggestions pour lesquelle la plus récente de ces 3 date est la plus ancienne ...

    En gros ... Si j'ai une suggestion avec comme dates :

    2004-06-01 // 2005-01-01 // 2006-01-01

    Je veux qu'elle soit considérée comme plus ancienne qu'une avec des dates :

    2004-05-12 // 2006-06-14 // 2006-01-01

    Parce que sa date la plus récente est plus ancienne que la date la plus récente de la 2eme suggestion ...



    JE me noie ... SOS

  4. #4
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT sug_id, GREATEST(sug_date, est_date, note_date) AS max_date
    FROM sug LEFT JOIN est ON (sug_id=est_sug_id)
             LEFT JOIN not ON (sug_id=not_sug_id)
    ORDER BY max_date ASC
    LIMIT 10
    Je n'ai pas lancé cette requète donc attention aux fautes de frappes. Je 'pense' que ça passe sur MySQL 3.

    Je suis parti sur des liaisons 1-1. Si les estimations et autres peuvent être multiples il faudra ajouter un 'GROUP BY sug_id' et utiliser 'MIN(est_date)' plutôt que est_date (idem note). Mais ça fait un produit cartésien entre estimations et notes... Ca marche quand même mais c'est pas terrible, seulement sans procédures imbriquées je ne vois pas de contournement.

    Il y a aussi un problème avec l'absence d'estimation (ou de note) qui donne est_date nulle et GREATEST renvoie alors NULL (comme beaucoup de fonctions MySQL). Ca peut se contourner en utilisant IFNULL sur est_date et une date par défaut qui remonte à avant le déluge.

  5. #5
    Membre éclairé Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Par défaut
    Bonjour

    ma version de mySQL ne connait pas le GREATEST ... ( et moi non plus a vrai dire )

    ...


  6. #6
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Ca va devenir compliqué... Passer à une version plus récente, c'est jouable ?

    La doc donne :
    Before MySQL 3.22.5, you can use MAX() instead of GREATEST().
    Donc après la 3.22.5 ça devrait être bon. Si ta version est antérieure, est-ce que MAX aurait le même comportement ?

    Autre possibilité, imbriquer plusieurs IF pour coder un maximum sur trois éléments. Moche mais efficace.

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

Discussions similaires

  1. [Mail] mail trop compliqué pour moi
    Par tremeur53 dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2008, 15h05
  2. Requête SQL trop compliquée pour moi
    Par goldenboy68 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/04/2008, 14h50
  3. Requete un peu compliqué pour moi
    Par passie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/04/2006, 15h08
  4. [SQL - ORACLE] Requete un peu compliquée (pour moi)
    Par Worldofdada dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/11/2005, 08h25
  5. Requête un peu trop compliqué pour moi
    Par Kokito dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2005, 15h17

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