Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
900 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Critère avec Fonction Year()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Critère avec Fonction Year()

n°2233372
kyoku59
Posté le 15-07-2014 à 13:08:09  profilanswer
 

Bonjour,
 
J'aimerai ajouter un critère sur une requête avec la fonction Year() mais celle-ci ne me retourne pas les bonnes valeur  :non:  
 
Voici ma requête :
 
 
---------------------------------------------
SELECT a.ID_PANNE, a.LIBELLE, sum(a.nbr) as Somme  
FROM (
          SELECT p.ID_PANNE, p.LIBELLE, count(E.PANNE_ID1) as nbr  
          FROM PANNE as P left outer join ENVOI as E ON  
          p.id_panne= e.panne_id1  
          WHERE p.ID_PANNE <> 1
          GROUP BY p.ID_PANNE, p.LIBELLE  
 
         UNION
 
         SELECT p.ID_PANNE, p.LIBELLE, count(E.PANNE_ID2) as nbr  
         FROM PANNE as P left outer join ENVOI as E ON  
         p.id_panne= e.panne_id2  
         WHERE p.ID_PANNE <> 1  
         GROUP BY p.ID_PANNE, p.LIBELLE  
 
         UNION  
 
        SELECT p.ID_PANNE, p.LIBELLE, count(E.PANNE_ID3) as nbr  
        FROM PANNE as P left outer join ENVOI as E ON  
        p.id_panne= e.panne_id3  
        WHERE p.ID_PANNE <> 1
        GROUP BY p.ID_PANNE, p.LIBELLE ) as a
 
GROUP BY a.ID_PANNE,a.LIBELLE
---------------------------------------------
 
Je procède comme ceci :
 
---------------------------------------------
SELECT a.ID_PANNE, a.LIBELLE, sum(a.nbr) as Somme  
FROM (
          SELECT p.ID_PANNE, p.LIBELLE, count(E.PANNE_ID1) as nbr  
          FROM PANNE as P left outer join ENVOI as E ON  
          p.id_panne= e.panne_id1  
          WHERE p.ID_PANNE <> 1 AND YEAR(E.DATE_RETOUR) = 2014
          GROUP BY p.ID_PANNE, p.LIBELLE  
 
         UNION
 
         SELECT p.ID_PANNE, p.LIBELLE, count(E.PANNE_ID2) as nbr  
         FROM PANNE as P left outer join ENVOI as E ON  
         p.id_panne= e.panne_id2  
         WHERE p.ID_PANNE <> 1 AND YEAR(E.DATE_RETOUR) = 2014  
         GROUP BY p.ID_PANNE, p.LIBELLE  
 
         UNION  
 
        SELECT p.ID_PANNE, p.LIBELLE, count(E.PANNE_ID3) as nbr  
        FROM PANNE as P left outer join ENVOI as E ON  
        p.id_panne= e.panne_id3  
        WHERE p.ID_PANNE <> 1 AND YEAR(E.DATE_RETOUR) = 2014  
        GROUP BY p.ID_PANNE, p.LIBELLE ) as a
 
GROUP BY a.ID_PANNE,a.LIBELLE
---------------------------------------------
 
BDD :
ID_PANNE1 | ID_PANNE2 | ID_PANNE3 | DATE_RETOUR
       2       |       5        |       5        |       2014
       4       |       1        |       2        |       2014
 
Resultat :
ID_PANNE | LIBELLE | SOMME
       2     |    HS1    |     1 (Normalement 2)
       4     |    HS2    |     1
       5     |    HS3    |     1  (Normalement 2)
 
 
Si quelqu'un peu me guider vers la lumière ça serai cool  :love:

mood
Publicité
Posté le 15-07-2014 à 13:08:09  profilanswer
 

n°2233381
lasnoufle
La seule et unique!
Posté le 15-07-2014 à 16:11:16  profilanswer
 

Salut
 
A vue de nez, ton probleme est probablement le fait que UNION enleve les lignes identiques et n'en laisse qu'une seule, donc t'auras beau trouver la meme panne une fois dans chacune des tes sous-requetes, au final a cause du UNION tu ne l'auras qu'une fois dans ton resultat.
Essaies de remplacer tes UNION par des UNION ALL.


---------------
C'était vraiment très intéressant.
n°2233429
kyoku59
Posté le 16-07-2014 à 06:42:22  profilanswer
 

Effectivement !
 
Merci beaucoup lasnoufle


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Critère avec Fonction Year()

 

Sujets relatifs
[EXCEL 2010] Formule résultat cellule X en fonction de YPassage d'une structure en argument de fonction
Coller des données en fonction N°semExcel : Alimenter une colonne en fonction de deux critères
Comment afficher un résultat en fonction du choix de l'utilisateurFonction include pour un fichier html
Problème argument fonction slope (vba)Probleme sur la fonction get pour un Httprequest
appel fonction à un menuitem d'une toolbar gtk2Passer "un" argument "deux-en-un" a une fonction
Plus de sujets relatifs à : Critère avec Fonction Year()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR