|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Voila j'utilise une requete sql de ce type :
SELECT DISTINCT SUBSTR(client.nom,1,1), client.age, adresse.ville, SUM(CLIENT.MNT) FROM CLIENT, ADRESSE WHERE CLIENT.CODE=ADRESSE.CODE AND CLIENT.AGE < '40' AND ADRESSE.DEP = '33' GROUP BY SUBSTR(client.nom,1,1), client.age, adresse.ville, SUM(CLIENT.MNT) Mais j'ai un message d'erreur à mon avis suite à la fonction SUBSTR dans le group by qqn peut-il m'aider ? Merci |
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Inscription : avril 2003 Messages : 170 ![]() |
Bonjour,
pour afficher les requêtes utilise les balises [ Code ] Sinon je pense que ceci devrait aller : Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Arf je dirais plutôt ca :
Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Ou plutôt (comme TheRussian):
Code :
Private joke : C'est juste pour revoir l'avatar de BiMouXeTTe |
||
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : avril 2003 Messages : 170 ![]() |
Désolé d'interrompre cet instant
Mais je maintiens ma requête pour 2 raisons : - Avec un GROUP BY, un distinct ne sert pas à grand chose - Si le but est de faire la somme de CLIENT.MNT, il ne faut pas mettre cette zone dans le group by car il y aura une ligne par MNT, et non la somme. Je vous laisse |
|
|
00
|
|
|
#6 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Dans certains SGBD, il faut mettre toutes les colonnes dans le GROUP BY.
|
|
|
00
|
|
|
#7 | |
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 |
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Si tu enlèves le substr dans le GROUP BY, tu vas avoir une ligne par "nom de client", alors que Infomax7 semble vouloir une ligne par initiale du nom de client.
|
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Citation:
Si tu fais un groupement par nom complet, tu n'auras pas le même résultat que si tu fais un groupement par initiale. |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Salut à tous !
Désolé pour le retard mais j'ai absolument besoin du SUBSTR(). TheRussian à raison à propos du DISTINCT. Je n'en ai pas vraiment besoin... |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
C'est une base Informix
|
|
|
00
|
|
|
#12 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Non je ne pense pas mais dans SQL Server, si tu ne met pas tous les champs dans GROUP BY, ca ne fonctionne pas...
|
|
|
00
|
|
|
#13 | |
|
Membre actif
![]() Inscription : avril 2003 Messages : 170 ![]() |
Citation:
|
|
|
|
00
|
|
|
#14 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Et pourtant c'est bien le seul SGBD qui me demandait de mettre tous les champs dans le GROUP BY. Peut être n'est cepas nécessaire sur les versions plus récentes.
|
|
|
00
|
|
|
#15 | |||||
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Citation:
Code :
Code :
|
|||||
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
La premiere requete est la fonctionnalité reelle du group by, c'est a dire associé a une fonction d'aggregation (sum). Elle va faire la somme de tous tes clients.mnt en fonction de leur SUBSTR(client.nom,1,1), client.age, adresse.ville, un truc du genre
A 30 MaVille 40 A 30 MaVille2 165 ... La seconde requete te ramenera l'equivalent d'un select distinct. A 30 MaVille 12 A 30 MaVille 28 A 30 MaVille2 143 ... |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Je voulais que ça soit BiMouXeTTe qui réponde :p rooh làlà
|
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
oups ! pardon
|
|
|
00
|
|
|
#19 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Lol ca tombe bien j'avais la flème
Puis j'ai remarqué qu'en ce moment, niveau SGBD, j'dis pas mal de conneries... |
|
|
00
|
|
|
#20 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2006 Messages : 19 ![]() |
Bonjour,
sous unix ou linux , SELECT client.nom[1,1], client.age, adresse.ville, SUM(CLIENT.MNT) FROM CLIENT, ADRESSE WHERE CLIENT.CODE=ADRESSE.CODE AND CLIENT.AGE < '40' AND ADRESSE.DEP = '33' GROUP BY 1,2,3 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com