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

Requêtes et SQL. Discussion :

Besoin d'aide sur une requête pourtant simple [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 51
    Points : 33
    Points
    33
    Par défaut Besoin d'aide sur une requête pourtant simple
    Bonjour à tous, je n'arrive pas à obtenir le résultat voulu sur une requête toute simple et bien sûr je prends la pression.
    J'ai une table fixe Incorporation_Date_ avec 3 colonnes (1) IdCode_ - pour clé primaire, 2) CID_-date au format AA/MM/YYYY de type string et 3) Max_TCCB3_ date au format AA/MM/YYYY de type string )

    Je souhaite faire une jointure avec une autre table SYDF_ dans laquelle je récupère une valeur Datamart.GAMS1_DateOfClosure_
    Je souhaite récupérer la première valeur inférieure à la colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IdCode_	CID_	Max_TCCB3_
    1	01/08/2012	16/10/2012
    2	01/11/2012	16/11/2012
    3	01/03/2013	26/02/2013
    4	01/05/2013	22/04/2013
    Ex : Pour la date 15/01/2013 obtenue de SYDF_.GAMS1_DateOfClosure_ je souhaite obtenir 01/03/2013

    15/01/2013 plus grand que 16/10/2012, plus grand que 16/11/2012, plus petit que 26/02/2013 donc j'affecte 01/03/2013

    En français ce que je veux faire d
    onne ça
    UPDATE SYDF_ INNER JOIN Incorporation_Date_ ON CDate(SYDF_.GAMS1_DateOfClosure_) < CDate(Incorporation_Date.Max_TCCB3_) SET SYDF_.AID_ = Incorporation_Date.CID_

    Je n'arrive pas à retourner la bonne valeur, merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Bonjour,

    Ton problème vient sans doute du fait que tes dates sont de type String. Les fonctions de regroupement ne peuvent pas agir comme tu t'y attend. La solution est de convertir tes dates en format dates légale d'Access avec DateValue ou mieux pour éviter les ambiguïtés en la codant toi même.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Oui c'est possible il m'est difficile de le faire aujourd'hui car l'application entière a 2 ans et je risque de déclencher des problèmes ailleurs.
    Par ailleurs j'ai essayé sans succès des modifications de date de type CDate(Format(mavaleur,"dd/mm/yyyy")).

  4. #4
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Je ne parlais pas de convertir l'application, mais de convertir la date au moment de son utilisation par SQL. Ce que tu essayes effectivement de faire, mais pas au bon endroit. Dans le Join, les chaînes peuvent fonctionner. Mais dans le regroupement, tu dois utiliser une conversion.

    Ceci ne peut pas marcher :
    Encore moins ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDate(Format(mavaleur,"dd/mm/yyyy"))
    Tu peux essayer :
    Mais je n'aime pas trop faire confiance à DateValue car elle fait appel aux réglages de l'ordinateur et des fois...

    Alors, j'aimerai mieux dans ta situation faire moi même une procédure bien comprise qui fasse la conversion de ton type de date vers le type d'Access (code au vol à valider) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Function ConversionDate( var as variant) as variant
        dim intJour     as integer
        dim intMois     as integer
        dim intAnnée  as integer
     
        if isnull(var) then
            ConversionDate= null
        else
            intJour= val(mid( var,1,2)
            intMois= val(mid( var,4,2)
            intAnnée = val(mid( var,7,4) 
            ConversionDate= DateSerial(IntAnnée, IntMois, intJour )
        end if
    end function

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Merci de ton support mumen, cela ne réponds pas à mon besoin mais merci quand même. J'ai un exe .Net donc j'ai traduit plusieurs requêtes à l'intérieur et notamment un UPDATE d'un SELECT TOP 1...
    Pour les performance c'est pas trop ça mais ça marche.

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

Discussions similaires

  1. [SQL] Besoin d'aide sur une requête
    Par moonboot dans le forum Oracle
    Réponses: 1
    Dernier message: 01/08/2006, 16h56
  2. besoin d'aide sur une requête mysql
    Par unmulot dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/07/2006, 14h17
  3. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 17h26
  4. Réponses: 1
    Dernier message: 03/08/2005, 12h41
  5. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 11h29

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