Requête SQL ardue

djé -  
 dje -
Bonjour à tous et merci d'avance à ceux qui liront ce post

j'ai un pitit souci en SQL. Voilà, il s'agit de développer un outil d'analyse sous Excel, en requêtant une base en ODBC. Je fais la requête sous Microsoft Query (jusque là rien d'extraordinaire).
C'est la requête en elle même qui pose problème, car un message indique que les données renvoyées ne peuvent être afficher sous forme graphique et à partir de là, il m'est impossible de renvoyer les données sous Excel (du moins j'ai essayé et ça ne fait rien)
Il est vrai que la requête est assez éloigné d'un Select classique, voici le monstre:

DECLARE curseur_test CURSOR FOR
(SELECT gl_codearticle, gl_qtefact, gl_datelivraison, gl_pieceprecedente from ligne where gl_naturepieceg='BLF');

DECLARE @gl_codearticle VARCHAR(50), @gl_qtefact VARCHAR(50), @gl_datelivraison VARCHAR(30), @gl_pieceprecedente VARCHAR(30)

BEGIN
OPEN curseur_test;
FETCH curseur_test INTO @gl_codearticle, @gl_qtefact, @gl_datelivraison, @gl_pieceprecedente

WHILE (@@FETCH_STATUS=0)
BEGIN
select @gl_codearticle, @gl_qtefact, @gl_datelivraison,
gl_qtefact from ligne where gl_naturepieceg='CF'
and gl_codearticle=@gl_codearticle

FETCH curseur_test INTO @gl_codearticle, @gl_qtefact, @gl_datelivraison, @gl_pieceprecedente
END
CLOSE curseur_test;
DEALLOCATE curseur_test;
END;

bon je l'ai un peu épuré mais l'essentiel est là, je l'ai testé sous l'analiseur de requête de SQL server, et elle me donne le résultat que je veux, mais il est vrai que l'affichage des données est séparé par chaque tour de boucle (chaque itération implique un SELECT différent). Le problème viendrai de là à priori.

La question que je pose est donc la suivante, existe t-il une instruction SQL pour grouper les résultats de plusieurs SELECT consécutif ou quelque chose dans le genre? Quelqu'un a t-il une idée pour résoudre le problème SVP? merci d'avance

1 réponse

dje
 
bon je me réponds moi-même pour les futurs utilisateurs qui pourront avoir le même genre de question. Il faut utiliser une vue (qui en fait une sorte de table virtuelle).
Après tu (je) te (me) débrouille(s)
0