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

Access Discussion :

[SQL] Différence de dates


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut [SQL] Différence de dates
    Bonjour,

    Je suis sous VB6 avec une base Access

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sSQL = ""
    sSQL = sSQL & "SELECT " & GrilleCibleArt
    sSQL = sSQL & "FROM  Tireurs T, CibleArt A "
    sSQL = sSQL & "WHERE T.T_IdTireur = A.CA_IdTireur AND A.CA_Distance = '" & sDistance & "'" & " "
    sSQL = sSQL & "ORDER BY A.CA_Total DESC, A.CA_Cp1 DESC, A.CA_Cp2 DESC, A.CA_CP3 DESC, A.CA_Cp4 DESC, A.CA_Cp5 DESC, " & _
    T_Categorie ASC, T.T_DateNaiss ASC"
    J'aimerai si c'est possible mettre une condition dans la close OPRDER BY, du genre :

    Si T_Categorie = 1 ou 2 alors TDateNaiss DESC et si T_Categorie = 3 ou 4 ou 5 alors T_DateNaiss ASC

    Si oui comment ??

    Merci d'avance
    Fikou

  2. #2
    Membre averti Avatar de rstephane
    Inscrit en
    Avril 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2003
    Messages : 59
    Par défaut
    Ca doit donner ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If T_Categorie = 1 Or T_Categorie = 2 Then
        sSQL = sSQL & "ORDER BY TDateNaiss DESC"
    Else
        sSQL = sSQL & "ORDER BY TDateNaiss DESC"
    End If

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut
    Salut et merci rstephane

    En fait la condition doit être dans la clause ORDER BY de la requête.

    Se sont les résultat d'un concour, en cas d'égalité je dois trier d'abord les plus jeunes (adolescents, junior), les plus vieux et en dernier l'élite.

    Les plus jeunes = DESC les plus vieux ASC

    Je doit mettre le test dans la requete et pas à la construction de cette dernière

    Fikou

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT *
    FROM laTable
    ORDER BY Categorie, 
             CASE WHEN Categorie = 1 
                  THEN DateNaissance - current_date
                  ELSE current_date - DateNaissance
             END
    current_date est la fonction standard qui renvoie la date du jour.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut
    Merci Médiat

    J'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sSQL = sSQL & "ORDER BY T.T_Categorie, CASE WHEN T.T_Categorie = 1 THEN T.T_DateNaiss - CURRENT_DATE ELSE: CURRENT_DATE - T.TDateMaiss END
    "
    Il me dit : la méthode open de l'objet à échoué

    J'ai aussi simplifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = sSQL & "order by t.t_datenaiss - current_date"
    Idem

    Fikou

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Est-ce que current_date est dispo avec access ?

Discussions similaires

  1. Date en sql (différence...)
    Par ammmm dans le forum PL/SQL
    Réponses: 1
    Dernier message: 17/11/2012, 20h19
  2. Réponses: 1
    Dernier message: 14/09/2012, 17h36
  3. Différence de date dans requete SQL
    Par GarsDuCalvados dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/11/2010, 13h28
  4. [AC-2007] Requête SQL différence entre deux date en heure
    Par sarah12 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/07/2010, 21h58
  5. PL/SQL différence entre deux dates et select into
    Par athone666 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 01/07/2009, 11h38

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