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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Difficulte avec Group By

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Difficulte avec Group By

n°1916896
Anteus
Mieux vaut prévenir que guérir
Posté le 20-08-2009 à 00:53:19  profilanswer
 

Hello tout le monde.
 
J'ai des petites difficultes avec une clause GROUP BY.
 
Voici ma requete:

Code :
  1. select
  2. COUNT(R.REF_NUM),
  3. DECODE(R.Z_CASE_TYPE,'441101','Request','441102','Incident'),
  4. to_char(FCT_GET_FMTDATE(R.OPEN_DATE),'MM/YYYY') AS "MOIS"
  5. from CALL_REQ R, CTCT C
  6. where R.GROUP_ID=C.ID
  7. and (C.C_LAST_NAME like '%_par_%'  or C.C_LAST_NAME like '%_lon_%' or C.C_LAST_NAME like '%_eur_%' or C.C_LAST_NAME like '%_wwi_%')
  8. AND R.OPEN_DATE  >=  FCT_GET_NUMDATE(to_date('06/01/2009','MM/DD/YYYY'))
  9. AND R.OPEN_DATE  <=  FCT_GET_NUMDATE(to_date('07/31/2009','MM/DD/YYYY'))
  10. GROUP BY "MOIS",R.Z_CASE_TYPE;


 
Outre l'evidente nooberie du code, Oracle me renvoie l'erreur suivante: "ORA-00904: "TEST": invalid identifier"
 
De toute evidence, il n'aime pas que je "nomme" mon champ "MOIS". Le probleme, c'est que si je fais un GROUP BY R.OPEN_DATE, R.Z_CASE_TYPE, il me sort des tas de resultats, alors que j'en attends au maximum 4. Je pense qu'il n'effectue pas la "conversion" du champ de date comme je veux le faire en utilisant la fonction to_char et la proc fct_get_fmtdate.
 
Comment le "forcer" a accepter de faire un group sur un champ nomme?


---------------
Autonomie, Excellence, But
mood
Publicité
Posté le 20-08-2009 à 00:53:19  profilanswer
 

n°1916918
casimimir
Posté le 20-08-2009 à 08:33:20  profilanswer
 

pas moyen, tu dois mettre.
 

Code :
  1. GROUP BY DECODE(R.Z_CASE_TYPE,'441101','Request','441102','Incident'),to_char(FCT_GET_FMTDATE(R.OPEN_DATE),'MM/YYYY')


n°1916934
pataluc
Posté le 20-08-2009 à 09:39:27  profilanswer
 

casimimir a écrit :

pas moyen, tu dois mettre.
 

Code :
  1. GROUP BY DECODE(R.Z_CASE_TYPE,'441101','Request','441102','Incident'),to_char(FCT_GET_FMTDATE(R.OPEN_DATE),'MM/YYYY')




ca ne vient pas des guillemets qu'oracle n'aimerait pas? il semble que j'avais déja vu fonctionner en mettant le nom d'un champ dans un group by (ou alors un sort peut être)...

n°1916951
casimimir
Posté le 20-08-2009 à 10:15:05  profilanswer
 

les guillements a ce niveau ne posent pas de soucis, mais ca reste une mauvaise idée de les utiliser car cela rend le champ case sensitive.
 
on ne peut pas utiliser d'alias dans un group by, par contre on peut utiliser un numéro de colonne dans un order by, style order by 2 desc, 1 asc

n°1917088
Anteus
Mieux vaut prévenir que guérir
Posté le 20-08-2009 à 15:14:56  profilanswer
 

casimimir a écrit :

pas moyen, tu dois mettre.
 

Code :
  1. GROUP BY DECODE(R.Z_CASE_TYPE,'441101','Request','441102','Incident'),to_char(FCT_GET_FMTDATE(R.OPEN_DATE),'MM/YYYY')




Ah, on peut utiliser les memes fonctiones et procs dans le group by que dans le select? Je ne savais pas, tien :jap:
 
Finalement, ca revient au meme, donc.
 
J'essaie ca tout a l'heure au boulot [:shay]


---------------
Autonomie, Excellence, But

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

  Difficulte avec Group By

 

Sujets relatifs
ORDER BY multicritère avec des priorités[Résolu] MySQL : LEFT JOIN et GROUP BY - récupérer la dernière valeur
[ACCESS]Difficulté d'execution d'une requete SQL[Oracle] Option de tri pour ORDER BY
[ACCESS]Difficulté d'execution d'une requeteRequete GROUP BY ou DISTINCT ou impossible a faire ?
[SQL] Requete Group By en prenant les infos du plus petit 
Plus de sujets relatifs à : Difficulte avec Group By


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