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

Langage SQL Discussion :

Résultats en fonction de la date système


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Points : 56
    Points
    56
    Par défaut Résultats en fonction de la date système
    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
    16
    17
    18
    19
    20
    SELECT  pbm.hotliner    AS Hotliner
        ,   COUNT(*)        AS "Nombre d incidents"
        ,   hotliner
        ,   COUNT(*) * 100 / tot.cnt AS Pourcentage
        ,   pbm.codegamme   AS Gamme
    FROM    problems    AS pbm
        INNER JOIN
        (   SELECT  codegamme
                ,   COUNT(*)    AS cnt
            FROM    problems 
            WHERE   datecloture BETWEEN DATE '2007-09-10' AND DATE '2007-09-15' 
            GROUP BY codegamme
        )   AS  tot
        ON  tot.codegamme = pbm.codegamme
    WHERE   pbm.datecloture BETWEEN DATE '2007-09-10' AND DATE '2007-09-15'
        AND pbm.codegamme NOT IN ('ETU-3270','ETU-ADV','ETU-FIDEL','ETU-MESIR','ETU-PRE')
    GROUP BY pbm.codegamme
        ,   pbm.hotliner
        ,   tot.cnt
    ORDER BY pbm.hotliner
    Je souhaiterais non pas mettre les dates en dur mais avoir en fait une requête qui, lorsque je la lance le lundi, va me chercher les résultats de la semaine passée donc une requête en fonction de la date système et la mettre à semaine -1 ...

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 392
    Points
    28 392
    Par défaut
    En précisant le SGBD que vous utilisez et sa version, les réponses proposées seront adaptées aux spécificités et limitations de celui-ci.
    Conseils à lire avant de poster sur ce forum

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Points : 56
    Points
    56
    Par défaut
    Toujours la même : NexusDB V2

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 113
    Points
    113
    Par défaut
    Je ne connais pas NexusDB mais d'après ce que j'ai trouvé ce qui suit devrait marcher.
    Essaie donc ça :

    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
    16
    17
    18
    19
    20
    21
     
    SELECT  pbm.hotliner    AS Hotliner
        ,   COUNT(*)        AS "Nombre d incidents"
        ,   hotliner
        ,   COUNT(*) * 100 / tot.cnt AS Pourcentage
        ,   pbm.codegamme   AS Gamme
    FROM    problems    AS pbm
        INNER JOIN
        (   SELECT  codegamme
                ,   COUNT(*)    AS cnt
            FROM    problems 
            WHERE   datecloture BETWEEN CURRENT_DATE - INTERVAL '1' WEEK AND CURRENT_DATE 
            GROUP BY codegamme
        )   AS  tot
        ON  tot.codegamme = pbm.codegamme
    WHERE   pbm.datecloture BETWEEN CURRENT_DATE - INTERVAL '1' WEEK AND CURRENT_DATE 
        AND pbm.codegamme NOT IN ('ETU-3270','ETU-ADV','ETU-FIDEL','ETU-MESIR','ETU-PRE')
    GROUP BY pbm.codegamme
        ,   pbm.hotliner
        ,   tot.cnt
    ORDER BY pbm.hotliner
    sinon

    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
    16
    17
    18
    19
    20
    21
     
    SELECT  pbm.hotliner    AS Hotliner
        ,   COUNT(*)        AS "Nombre d incidents"
        ,   hotliner
        ,   COUNT(*) * 100 / tot.cnt AS Pourcentage
        ,   pbm.codegamme   AS Gamme
    FROM    problems    AS pbm
        INNER JOIN
        (   SELECT  codegamme
                ,   COUNT(*)    AS cnt
            FROM    problems 
            WHERE   datecloture BETWEEN CURRENT_DATE - INTERVAL '5' DAY AND CURRENT_DATE 
            GROUP BY codegamme
        )   AS  tot
        ON  tot.codegamme = pbm.codegamme
    WHERE   pbm.datecloture BETWEEN CURRENT_DATE - INTERVAL '5' DAY AND CURRENT_DATE 
        AND pbm.codegamme NOT IN ('ETU-3270','ETU-ADV','ETU-FIDEL','ETU-MESIR','ETU-PRE')
    GROUP BY pbm.codegamme
        ,   pbm.hotliner
        ,   tot.cnt
    ORDER BY pbm.hotliner

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Points : 56
    Points
    56
    Par défaut
    ok merci beaucoup c'est la deuxième qui fonction. Le chiffre 5 correspond à -5 jours c'est bien ça ? Donc si je lance ma requête le samedi soir j'aurai les résultats du lundi au samedi c'est bien ça ?

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 113
    Points
    113
    Par défaut
    Oui tout à fait c'est cinq jours.

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

Discussions similaires

  1. [AC-2010] Limiter des résultats en fonction d'une date dans un entête de formulaire
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/04/2013, 20h18
  2. Réponses: 4
    Dernier message: 28/03/2007, 12h16
  3. fonction permettant de retourner la date système
    Par casho dans le forum Access
    Réponses: 2
    Dernier message: 18/09/2006, 10h06
  4. Trier les enregistrements en fonction de la date
    Par mpereg dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/09/2004, 14h16
  5. [Sybase] Récupération de la date système
    Par atos dans le forum Sybase
    Réponses: 2
    Dernier message: 03/03/2004, 14h29

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