|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Bonjour à tous,
J'ai une problématique que je n'arrive pas à m'expliquer sous MySQL. J'ai une table qui se nomme export qui contient 4 champs : idpat, annee, age et lesiocimo. La colonne idpat contient des doublons. Je dois calculer pour chaque lesiocimo son nombre pour chaque année. Puis son total sans distinction. Dans un premier temps, j'extrais le nombre idpat pour chaque lesiocimo et par année en faisant : Code :
En sortie pour l'année 1995 j'obtiens : en sommant pour 1995: lesiocimo : 9440/3 : 13 9400/3 : 0 9450/3 : 1 9451/3 : 8 9382/3 : 6 soit : 13 + 0 + 1 + 8 + 6 = 28 Maintenant, si je fais : Code :
Merci. |
||||
|
|
00
|
|
|
#2 | ||||||
![]() ![]() |
Citation:
Code :
Citation:
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
|
|
|
#3 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Commence par remplacer les OR par un seul IN (plus efficace, plus lisible) et enlever toutes les parenthèses : Code :
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
00
|
|
|
#4 | ||||||
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Salut merci pour vos réponses. En fait, ce que je ne comprends c'est pourquoi je n'ai pas le même nombre j'ai un écart de +/-1 dans le total de la dernière requête même en utilisant la requête de ced.
par exemple : Code :
Code :
1995 : lesiocimo = '9451/3' j'ai 8 1995 : lesiocimo = '9382/3' j'ai 6 si je somme : 13+1+8+6 = 28 ce qui est différent du résultat 26 qui resort directement de la requête : Code :
|
||||||
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : septembre 2002 Messages : 140 ![]() |
Bonjour,
Est-ce que ta différence ne proviendrait pas du fait que 2 patients sont revenus 2 années différentes : dans tes requêtes individuelles tu les comptes chaque année, mais lorsque tu regardes s'ils sont venus dans les 5 dernières années, ils ne comptent qu'une seule fois. C'est ça ? |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
salut papa6,
En fait, si il revient 2 années différentes, il garde le même idpat. C'est pour cela que je fais un distinct idpat pour ne pas les comptabiliser plusieurs fois. |
|
|
00
|
|
|
#7 | ||
|
Membre habitué
![]() Inscription : septembre 2002 Messages : 140 ![]() |
Bonjour,
Au fait, il ne faut pas grouper le total par année ! Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Salut papa6,
Merci pour ta réponse. Pourquoi il ne faut pas regrouper par année ? Si je veux avoir le total de tous ces codes par année comment dois je faire Merci encore pour l'aide. |
|
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() Inscription : septembre 2002 Messages : 140 ![]() |
Bonsoir Jarod,
Est-ce que la dernière requête que j'ai proposée retourne bien 26 (ou alors 28?) Si tu regroupes par année, tu auras les clients venus des années différentes comptabilisés plusieurs fois. Tu peux vérifier à la main pour chaque année en cherchant tes 2 doublons : Code :
|
||
|
|
00
|
|
|
#10 | ||||
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Salut papa6,
Ta dernière requête : Code :
Par contre, pour la dernière requête : Code :
A+ |
||||
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Je suis finalement passé par une table temporaire pour faire un sum(count), je retombe sur mes pattes
. A+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com