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 Oracle Discussion :

Comment formatter dynamiquement une date en fonction de la date du jour ? [11gR2]


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut Comment formatter dynamiquement une date en fonction de la date du jour ?
    Bonjour,

    Je souhaite modifier ma requête ci-dessous afin de placer dynamiquement une date en fonction de la date du jour au lieu de '30/09/2014'.
    Ainsi :
    - si la date du jour est > '30/09' de l'année, la date que je doit prendre en compte est le '30/09' de l'année,
    - sinon je dois prendre en compte le '30/09' de l'année précédente.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT  a.id_article
          ,max(a.date_livre) AS date_livre
          ,max(a.id_achat_ligne) keep (dense_rank first order by date_livre DESC) AS id_achat_ligne
     FROM t_achat_bl_ligne a    
    WHERE a.date_livre <= TO_DATE('30/09/2014','DD/MM/YYYY') 
    GROUP BY a.id_article
    Je précise que cette requête est dans une sous-requête.

    Je ne vois pas comment faire.

    Merci d'avance.
    Julien.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      SELECT a.id_article
           , max(a.date_livre) AS date_livre
           , max(a.id_achat_ligne) keep (dense_rank first ORDER BY date_livre DESC) AS id_achat_ligne
        FROM t_achat_bl_ligne a    
       WHERE a.date_livre <= case
                               when extract(month from sysdate) >= 10
                               then trunc(sysdate, 'yyyy') + interval '9' MONTH - 1
                               else trunc(sysdate, 'yyyy') - interval '3' MONTH - 1
                             end 
    GROUP BY a.id_article;

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. [Conception] comment changer une entree en fonction de la date
    Par flOZ dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/06/2006, 11h13
  2. [C#] Comment remplir dynamiquement une table HTML ?
    Par tiboleo dans le forum ASP.NET
    Réponses: 3
    Dernier message: 31/05/2006, 09h51
  3. Réponses: 5
    Dernier message: 03/02/2006, 01h05
  4. Réponses: 5
    Dernier message: 09/08/2005, 17h38

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