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 :

[Requête dans Reporting Services] Problème de date dans un graphe.


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 28
    Points
    28
    Par défaut [Requête dans Reporting Services] Problème de date dans un graphe.
    Bonjour,
    voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select 
         month(rl_date) [month],
        year(rl_date) [year],
        pr_name [priority], pr_sort_seq,
        count(1) [count] 
    from bugs 
       inner join priorities on bg_priority = pr_id 
       left outer join releases on bg_version = rl_version 
    where bg_category =2 and year(rl_date)>2005
    group by year(rl_date), month(rl_date),  pr_sort_seq, pr_name
    order by year(rl_date), month(rl_date), pr_sort_seq
    Cette requête est utilisé pour créer un graphe dans SQL reporting services 2005.
    Le problème que je rencontre est le suivant :
    Si jamais j'ai un mois qui n'est pas renseigné alors dans mon graphe il n'y figurera pas. Le hic c'est que j'en ai réellement besoin
    J'ai beau essayer avec decode(...) case when ... SQL reporting services ne reconnait pas ces fonctions.. d'où ma question :
    Connaissez un moyen pour afficher tous les mois dans mon graphe même si pour un mois donné il n'y a pas de valeur ? Astuce ou modif de requête seront les bienvenues.

    Cordialement,

    Shurka

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Effectivement, SQL ne peut pas créer des enregistrements qui n'existent pas.
    Une soluce consiste a créer une table annexe comportant les mois et de faire une jointure externe avec.

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 786
    Points
    30 786
    Par défaut
    Une requête ne peut pas afficher des données qui ne sont pas les tables...
    En conséquence, il te faut impérativement une table calendrier à associer à tes requêtes.

    Je t'encourage à lire le papier de SQLPro sur le sujet :
    Le temps, sa mesure, ses calculs
    Citation Envoyé par SQLPro
    La plupart des SGBDR sont incapables de fournir une réponse correcte aux problématique de calculs de temps. Voici une étude et une solution à tout vos maux temporels !
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    Et comment ferais tu ca ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    Ok je vais de ce pas le lire.
    Merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    Bon, bah j'ai peut etre trouvé une feinte grâce au lien que tu m'as conseillé de lire : l'utilisation du DATEADD.

    Je vais essayer et je vous tiendrais au courant si cela marche ou non.

    Merci en tout cas.

    Cordialement,

    Shurka

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 786
    Points
    30 786
    Par défaut
    Avec un table calendrier(cal_date, cal_year, cal_month) simple, tu peux faire ç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
    22
    23
    24
    25
    SELECT  cal.cal_month   AS [month]
        ,   cal.cal_year    AS [year]
        ,   pri.pr_name     AS [priority]
        ,   pri.pr_sort_seq
        ,   count(1)        AS [count] 
    FROM    bugs    AS bug
        INNER JOIN 
            priorities  AS pri
            ON  bug.bg_priority = pri.pr_id 
        LEFT OUTER JOIN 
            releases    AS rel
            ON  bug.bg_version = rel.rl_version
        RIGHT OUTER JOIN
            calendrier  AS cal
            ON  cal.cal_date = rel.rl_date
    WHERE   bug.bg_category = 2 
        AND cal.cal_year BETWEEN 2005 AND EXTRACT(YEAR FROM CURRENT_DATE)
    GROUP BY cal.cal_year
        ,   cal.cal_month
        ,   pri.pr_sort_seq
        ,   pri.pr_name
    ORDER BY cal.cal_year
        ,   cal.cal_month
        ,   pri.pr_sort_seq
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. Problème de date dans requête
    Par Julien42 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 06/06/2011, 18h44
  2. Problème format date dans une requête access
    Par helprojet dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/02/2009, 03h09
  3. problème valeur date dans une requête
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/06/2007, 19h13
  4. Problème avec date dans requête
    Par alain94 dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2006, 07h49
  5. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 15h34

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