|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Didier Inscription : mars 2011 Messages : 14 ![]() |
bonjour,
je debute en mysql et je galère pour pas grand chose je pense! Voici ma requete le but du jeu est de sortir tous les objets qui ont un statut = 4 de 2011 et qui ont une date souhaitee >= date realisation et la meme requete pour le contraire < 1-ma requete me sors bien les 2 select mais lorsque je veux faire un export en csv pour excel, je n'ai que du code et pas ma liste! 2-je voudrais en plus que pour chaque enregistrements de la premier requete select, la valeur du champ CAT soit remplacée par HSLA et dans la deuxieme, par SLA afin que je puisse en fair eun histogramme Merci pour votre aide! . Code :
|
||
|
|
00
|
|
|
#2 | |||
![]() ![]() |
1) Les jointures s'écrivent depuis 1992 selon la norme SQL avec l'opérateur JOIN !
2) Avec des alias, la requête devient plus lisible. 3) La fonction YEAR donne en entier ; inutile de le comparer à la chaîne de caractères "2011" 4) Toutes les colonnes du SELECT ne faisant pas l'objet d'une fonction de regroupement doivent figurer dans le GROUP BY, sinon vous aurez des données aléatoires dans les colonnes manquantes ! 5) Dans une requête aux multiples jointures, il vaut mieux préciser de quelles tables proviennent toutes les colonnes citées. 6) En faisant count( "CAT" ) AS HLSA, vous demandez de compter la chaîne de caractères "CAT". Ça m'étonnerait que le résultat fourni soit celui que vous espérez ! Si vous voulez compter les lignes répondant aux conditions, faites simplement un COUNT(*). 7) Au fait, en SQL, les chaînes de caractères s'entourent d'apostrophes, pas de guillemets. Citation:
Parce que si vous voulez les objets répondant à une condition et les objets répondant à la condition inverse, vous demandez en fait tous les objets ! Voici votre première sous-requête récrite : Code :
Dans ce cas, vous pouvez le faire en une seule requête en utilisant CASE et en faisant la somme des CASE une condition et des CASE la condition inverse. Il y a déjà eu des comptages similaires traités sur le forum MySQL/Débuter, MySQL/Requêtes ou Langage SQL tout récemment. Revenez si besoin avec un besoin plus clair et un jeu de données exemple et le résultat attendu.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Didier Inscription : mars 2011 Messages : 14 ![]() |
bonjour,
je vous remercie pour votre aide, la requete s'execute en un temps record, mais j'ai encore des doublons de Num_demande qui me faussent le resultat de la requete. J'ai demandé à faire une formation SQL, mais ça tardeLe but de cette requete est d'analyser la qualité de nos prestations à savoir demandes executées dans les delais ou non, d'en sortir le nombre par objets ainsi que les pourcentage de realisation par objets dans les temps (SLA). Ce que je veux faire, c'est bien lister tous les objets qui sont de statut 4 et de 2011 et de reperer ceux qui sont hsla donc date_souhaitée < à date_statut (qui est la date de cloture de la demande) en ecrivant HSLA, ou SLA quand la condition est >= dans une colonne qu'on appelerait "Delais". En meme temps, j'aimerais compter le nombre de SLA et de HSLA par regroupement d'Objet et en sortir le % par rapport au total des objets. (on peut supprimer la colonne CAT mais pas le critere ainsi que le count () actuel) merci! |
|
|
00
|
|
|
#4 | ||||||||||||||||
![]() ![]() |
Citation:
Allons-y par étapes... Citation:
Code :
Citation:
Code :
Citation:
Code :
Et au passage, le statut ne devrait-il pas figurer uniquement dans la table_statut_demande ? N'as-tu pas une redondance de données ? Citation:
Code :
Citation:
Le nombre de SLA et de HSLA par objet est un nombre de demandes, pas d'objets. Est-il vraiment cohérent de vouloir calculer le pourcentage d'un nombre de demandes par rapport à un nombre total d'objets ? Voici la requête qui calcule le nombre de HSLA et de SLA par objet : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||||||||||||||
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Didier Inscription : mars 2011 Messages : 14 ![]() |
j'ai encore des doublons, le comptage des demandes est erroné, j'ai affiché les num_demande pour verifier et voici le resultat:
Num_demande Libelle_Famille Libelle_Objet nb_HSLA nb_SLA 60662 Téléphone Fixe Création Télérelève ACM avec MESTA 1 2 60739 Téléphone Fixe Création Téléconduite avec MESTA 1 2 60748 Téléphone Fixe Création Télérelève ACM avec MESTA 1 2 61112 Téléphone Fixe Création Téléconduite avec MESTA 0 3 il arrive à compter 1 sla + 2 hsla sur la premiere demande alors que je ne devrais avoir que 1 sla ou hsla la requete que j'ai modifiée pour cette verif: Code :
La table Statut demande est comme ça: Num_Statut_Demande Num_Demande Num_Statut Date_Statut 89111 37900 9 2009-06-25 ********************************************************* La table_demande est comme ceci: Num_Demande Numero_Demande Num_Statut Num_Objet Num_Famille 41397 41397 9 103 14 Num_Type Date_Souhaitee_Realisation 63 2009-09-15 ******************************************************* une fois ce probleme corrigé, la requete sera super pour moi Merci encore une fois pour votre aide! |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Didier Inscription : mars 2011 Messages : 14 ![]() |
j'ai retravaillé la requete, enfin, j'obtiens ce que je veux, j'ai du afficher les Num_demande et enlever les SUM des SLA ET HSLA, du coup j'en ai profité pour récupérer les Mois des demandes, avec cet export sur excel, je calcule mes totaux et % avec un graphique dynamique. Super.Merci pour votre aide précieuse! cordialement |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com