|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 117 ![]() |
Bonjour à tous,
alors mon pb aujourd'hui est le suivant: j'ai une table qui se présente comme vous pouvez le voir dans la PJ. mon but est de réussire à faire la somme des colonnes(que je veux) dans une autre colonne. par exemple toutes les communes commencant par un 03 en faire la somme dans une colonne " département de l'Allier", toutes les communes commencant par un 15 dans uen colonne" département du cantal" .... merci pour votre aide |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Salut,
Tu les veux dans une même table ? Tu veux extraire toutes les premières chaines de tes 473 communes et les sommer là dessus? Je commence à connaitre ton projet |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 117 ![]() |
oui oui je m'en doute, tu m'a aidé à chaqué étape( je pensais même à en faire un résumé et le poster içi, qui sait ça pourra aider d'autres personnes!!)
pour répondre à ta question, les deux possibilités me vont!! même si je pense que vuet mieux avoir les résultats sur une autre table!!??? non??? qu'est ce que tu en pense? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
ta variable commune et numérique ou caractère? c'est mieux dans une même table
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 117 ![]() |
moi je dois arriver à regrouper toutes les communes du cantal, allier, haute loire, etranger, ile de france, province,.......
et donc j'ai pensé(logiquement aussi) au code département. 03 --> allier 15-->cantal 43--> haute loire 75,77,78,91,92,93,94,95 --> ile de france ... c'est pour cela que je voulais avant avoir une table croisé des communes avec le flux, pour pouvoir sommer directement. [Edit] commune: numérique. et bien va pour la même table. |
|
|
00
|
|
|
#6 | ||||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Tu commences d'abord pas extraire les deux premières chaines (la fonction substr), pour cela il fallait convertir en caratère (input).
Code :
Code :
J'espere que j'ai été clair! |
||||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
autre possibilité qui réduit la taille de la table: créer un format sur commune2. Ca évite d'avoir à créer commune_reg
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
J'ai mis en commentaire, mais tu peux compléter Manoutz !!
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Oui mais le format (dont je suis fan pourtant) ne sera pas pris en compte par la proc SQL pour agréger. Il faudrait créer commune_reg avec un PUT dans le SELECT et s'en resservir dans le GROUP BY.
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
J'ai rien pigé Olivier
|
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
@brice:C'est deux choses différentes. La je parle de FOMATTER les données, via une proc format. Dans ton code, tu créée une variable supplémentaire pour afficher le nom du département. plutot que de créer deux variables, une pour le numéro de département(ou groupement de département), une pour son nom, autant en créer qu'une seule et modifier son affichage.
@ Olivier: mon idée est de créer commune2 à l'image des groupes que l'on va utiliser pour la synthèse. Ca peut se défendre dans le sens ou les données ne sont pas utilisées au niveau "département", mais plutot au niveau d'un niveau d'un groupe synthèse (qui peut être un département ou un ensemble de département) |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 117 ![]() |
oulàà doucement les gars, j'ai rien compris.
j'en suis encore à la première solution de megamind2. tu me demande e convertir le format de ma commune qui va de 63000 à 63473. alors que moi je veux faire des sommes au niveau de mes comm_XXXX !!(ils sont en format num) |
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 117 ![]() |
Code :
|
||
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Citation:
|
|
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Code :
|
||
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bon alors 2 nouvelles : la 1e c'est que vous pouvez ne pas tenir compte de mon message plus haut, je m'étais mépris sur les intentions de Manoutz. (Pour info Brice, ce que je voulais dire, c'est qu'au contraire d'une proc MEANS avec CLASS, il ne suffit pas d'avoir un format en SQL pour qu'il groupe selon les valeurs formatées.)
La 2e, c'est que si je comprends bien ton besoin DebutSAS, ce sont toutes les colonnes dont le nom commence par... que tu veux sommer ensemble, une ligne à la fois (il sera temps de les agréger ensuite j'imagine). Je pense que l'étape DATA sera plus simple, surtout vu les noms de tes colonnes. Pas de chance d'ailleurs, tous les codes communes ne sont pas sur 5 chiffres avec un zéro à gauche. Ca nous aurait facilité la vie, car on peut alors écrire : Code :
Si c'est bien ça ton besoin, on peut imaginer deux solutions : 1) tu peux modifier la table en remontant dans le programme qui la crée et mettre systématiquement les n°s de communes sur 5 chiffres (un format Z5. dans un PUT devrait être bien pour ça) 2) sinon il va falloir bricoler avec un ARRAY, ce sera rigolo à écrire mais sans doute moins à comprendre. Dis-moi si je suis dans le vrai ou si je dois tout de suite aller me coucher. Olivier |
||
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Pour que ça marche, il faudrait que ta variables commune soit en ligne et ne soit pas précédée de comm_. A un moment donné, tu as transposé ta table, en fait il faut appliquer ce code juste avant. Si tu as une copie d'écran de ta table avant la transposition, postes la.
|
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 117 ![]() |
ouiiiii tu es dans le vrai(ne va pas te coucher STP
oui je veux faire une somme sur mes colonnes qui comment par comm_XXXX par commune ( d'ou le pb que par exemple pour l'allier j'ai pas le 0 au début!!) |
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 117 ![]() |
ma table d'être transposée (table2)
et uen fois aprés(table1) |
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com