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 :

Requête glissante 12 mois


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut Requête glissante 12 mois
    Bonjour,
    j'ai le même soucis que dans ce sujet (lui sur SQL-Server), j'aimerais faire une requête, dont le résultat se base sur les 12 derniers mois, à partir d'aujourd'hui donc , donc d'un côté j'ai test deux options mais je ne sais pas trop laquelle est la mieux :

    Cas 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where ROUND (MONTHS_BETWEEN (SYSDATE,TO_CHAR (monchampsdate, 'DD/MM/YYYY')),0) <= '12'
    Cas 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where monchampsdate > ADD_MONTHS(SYSDATE,-12)
    Merci à vous.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Sans hésiter la seconde proposition.
    1. Si vous avez un index sur <monchampsdate> la base pourrait l'utiliser contrairement au premier cas.
    2. Il n'y a pas de conversion à faire sur la colonne, pas de calcul, donc beaucoup moins de travail ; de surcroît vos fonctions entraînent plusieurs conversions implicites & inutiles dans la première proposition.

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Juste pour signaler tous les problèmes d'incohérence de type de ta solution 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where ROUND (MONTHS_BETWEEN (SYSDATE,TO_CHAR (monchampsdate, 'DD/MM/YYYY')),0) <= '12'
    ROUND
    (MONTHS_BETWEEN
    (SYSDATE, # Date : OK
    TO_CHAR (monchampsdate, 'DD/MM/YYYY') # Chaine de caractère : Inconsistant (rapport à sysdate et à Months_between qui veut 2 dates)
    ),0) # Number : OK
    <= '12' # Chaine de caractère : Inconsistant par rapport à ROUND qui retourne un NUMBER.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    ok , merci bien !

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

Discussions similaires

  1. Requête sur 12 mois glissant
    Par sandrasemise dans le forum Webi
    Réponses: 5
    Dernier message: 17/08/2010, 15h42
  2. Requête cumul par mois
    Par damsmut dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/04/2009, 17h31
  3. Requête SQL par mois
    Par Chekov dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/12/2007, 11h38
  4. Requête avec le mois
    Par Kalite dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/01/2007, 11h42
  5. [Requête] Regroupement par mois en cours
    Par Burnout dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/01/2006, 09h36

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