|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Bonjour tout le monde,
Voilà je cherche à éxècuter un select SUM(..) complexe qui me retourne donc un résultat unique. De ma pauvre et courte expérience en RPGLE (une succession de select dynamique pour l'instant), je ne connaissais que la structure de SQL dynamique: Code :
Code :
Voilà, je sais pas si je me suis bien faite comprendre. D'avance merci. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Encore plus simple et on ne peut plus direct :
Code :
Il ne te reste plus qu'à définir correctement la variable MonResultat dans les spécifs D de ton programme. |
||
|
|
00
|
|
|
#3 | |||||
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Citation:
Code :
|
|||||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
A cause de INTO, d'un côté on ne peut pas dynamiquement préparer la totalité du SELECT, mais d'un autre côté grâce à INTO, on évite le curseur à qq réserves près. Maintenant, si ce n'est que la valeur à droite du signe " > " qui change, tu peux faire:
Code :
Si ça ne suffit pas, il faudra passer par un curseur, on n'y coupe malheureusement pas. |
||
|
|
00
|
|
|
#5 | |||
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Citation:
Ma requête s'appuie sur une vue/table temporaire (je sais pas comment on dit), style : Code :
|
|||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Tu dois pouvoir utiliser une expression de table commune de la façon suivante:
WITH MaTable AS ( SELECT SUM(mt) FROM desTables WHERE id = :Monid -- un seul id renvoyé possible sans curseur AND toto = :monToto AND tata = :monTata etc... GROUP BY id HAVING SUM(mt) > :mtMin ) SELECT SUM(mt) INTO :monResultat FROM MaTable |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Problème résolu. Honte à moi, en fait il s'agissait d'un problème de bibliothèque
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com