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

Requêtes et SQL. Discussion :

Problème de dénombrement du nombre d'occurrences [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 41
    Points : 37
    Points
    37
    Par défaut Problème de dénombrement du nombre d'occurrences
    Bonjour à tous,
    je continue ma découverte de la puissance du langage SQL que j'applique directement pour améliorer mon projet.
    Aujourd'hui, je m'attaque au reporting et donc au décompte des occurrences de différents champs pour présenter les perfo du département.

    et là, c'est le drame...

    je m'explique

    j'ai une première table t_kpi_screen_data :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    N°	KPI_Family	Engineering_Site	Family
    1	S & W	V	W
    1	S & W	V	S
    2	L & A	V	A
    2	L & A	V	L
    3	C	V	co
    4	Total Civil	V	W
    4	Total Civil	V	S
    4	Total Civil	V	A
    4	Total Civil	V	L
    un résultat de requête Req_Sum_TAT_Eng_RC avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Rank	engineering_site	rc_ncr	Family	nb
    201815	V	RC	L	4
    201815	V	RC	S	2
    201815	V	RC	W	3
    201814	V	RC	A	1
    201814	V	RC	Co	7
    201814	V	RC	L	6
    201814	V	RC	S	19
    201814	V	RC	W	5
    201813	V	RC	A	1
    201813	V	RC	Co	10
    201813	V	RC	L	1
    201813	V	RC	S	18
    201813	V	RC	W	6
    et un second résultat de requête Req_clos_Nb_Eval_RC :

    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
     
    Rank	engineering_site	rc_ncr	Family	Tot Eng TAT
    201815	V	RC	L	99.3553587962888
    201815	V	RC	S	12.6771296297084
    201815	V	RC	W	25.4406597222987
    201814	V	RC	A	4.35042824070115
    201814	V	RC	Co	30.5487037037237
    201814	V	RC	L	49.3864236111112
    201814	V	RC	S	181.241215277943
    201814	V	RC	W	71.1648379630715
    201813	V	RC	A	7.85697916660138
    201813	V	RC	Co	61.7147916667018
    201813	V	RC	L	19.5217129629964
    201813	V	RC	S	110.629166666811
    201813	V	RC	W	107.805937499899

    j'ai créé une requête que je trouve pas trop mal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT b.kpi_family, sum(a.[tot eng tat]) AS [Eng TAT], sum(c.nb) AS [Nb Closed], sum(a.[tot eng tat])/sum(c.nb) AS [Eng TAT/RC]
    FROM (t_kpi_screen_data AS b INNER JOIN [Req_Sum_TAT_Eng_RC] AS a ON b.family = a.Family) INNER JOIN Req_clos_Nb_Eval_RC AS c ON b.family = c.Family
    where (c.rank = 201815 or c.rank=201814 or c.rank=201813)  and( a.rank = 201815 or a.rank= 201814 or a.rank= 201813) and a.engineering_site = "v" and b.engineering_site = "v" and c.engineering_site = "v"
    GROUP BY b.kpi_family, b.[]
    ORDER BY b.[];
    sauf que je me retrouve avec des résutats complètement aberrants que je n'arrive pas à corréler, genre multiplié par le nombre de semaines d'étude...en tout cas pour la première ligne... suis un peu perdu... et sec... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    kpi_family	Eng TAT	Nb Closed	Eng TAT/RC
    S & W	1526.8768402792	159	9.60299899546665
    L & A	529.205300925794	37	14.3028459709674
    C	        184.526990740851	34	5.42726443355444
    Total Civil	2240.60913194584	230	9.74177883454714
    du coup...
    une âme charitable pourrait-elle se pencher sur mon petit souci?.....

    help...

    siouplé.....

    flobuzz

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    bon alors...

    j'ai trouvé une de mes erreurs...

    le fait de lui passer en double les variables a.rank et c.rank n'était pas intelligent du tout...

    du coup, je remplace par a.rank = c.rank et c'est tout de suite mieux...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT b.kpi_family, sum(a.[tot eng tat]) AS [Eng TAT], sum(c.nb) AS [Nb Closed], sum(a.[tot eng tat])/sum(c.nb) AS [Eng TAT/RC]
    FROM (t_kpi_screen_data AS b INNER JOIN [Req_Sum_TAT_Eng_RC] AS a ON b.family = a.Family) INNER JOIN Req_clos_Nb_Eval_RC AS c ON b.family = c.Family
    where (c.rank = 201815 or c.rank=201814 or c.rank=201813)  and  a.rank = c.rank and a.engineering_site = "v" and b.engineering_site = "v" and c.engineering_site = "v"
    GROUP BY b.kpi_family, b.[]
    ORDER BY b.[];

    sauf que...

    je me retrouve avec des semaines pour lesquelles la valeur sum(a.[tot eng tat]) AS [Eng TAT] est null (et n'apparait donc pas dans le résultat de ma requête) alors que j'ai bien des valeurs sum(c.nb) AS [Nb Closed] pour la même semaine... mais comme il n'y a rien en face, le décompte ne se fait que partiellement...

    une astuce ?...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    bon bah c'est bon :

    il fallait passer par des SELECT intermédiaires...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT kpi_family,sum(a.[TAT Eng]) as [TAT Eng], sum(c.[Nb Closed]) as [Nb Closed], (sum(a.[TAT Eng]) / sum(c.[Nb Closed])) AS [P%]
    FROM (t_kpi_screen_data AS b INNER JOIN (select family, sum(nb) as [TAT Eng] from [Req_TAT-10_Eng_RC] where engineering_site = "v" and rank between 201812 and 201815 group by family) AS a ON b.family = a.Family) INNER JOIN (select family, sum(nb) as [nb Closed] from Req_clos_Nb_Eval_RC where engineering_site = "v" and rank between 201812 and 201815 group by family) AS c ON b.family = c.Family
    group by kpi_family, []
    ORDER BY b.[];

    trouvé tout seul...

    moralité : ça sert à rien de bosser à 1h du mat'...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/06/2006, 20h04
  2. Problème de tri entre nombre et lettre
    Par bikork dans le forum Delphi
    Réponses: 5
    Dernier message: 07/06/2006, 21h16
  3. Problème de tri de nombre négatif dans un état
    Par loutsky dans le forum Access
    Réponses: 11
    Dernier message: 21/04/2006, 15h30
  4. [SQL*Loader] Problème de chargement de nombres
    Par sebduth dans le forum Oracle
    Réponses: 10
    Dernier message: 18/11/2005, 11h07

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