Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récuperation de plusieurs valeur d'un select

3 réponses
Avatar
Zeus
bonjour,

j'utilise un curseur afin de récupérer dans plusieurs table une informatin
concernant
une imprimante, tout se passe bien, mais lorsque que je veux faire un print
de mon résultat j'obtiens toujours le dernier résultat trouvé, logique.
j'ai donc utilisé cette petite astuce afin d'afficher les deux résultats.

En fait ce que je cherche c'est affiché le résultat de ma requete sur une
seul ligne ex: print @variable1+@variable2+@... sachant que je ne connais pas
à l'avance le nombre de résulta retourné.

Voici mon script

Declare impres scroll cursor for
SELECT dbo.T_Postes.NomPoste,
dbo.T_ImprimantesReseauEtPostes.NomImprimante
FROM dbo.T_LienPostesImprimantesReseauPoste INNER JOIN
dbo.T_ImprimantesReseauEtPostes ON

dbo.T_LienPostesImprimantesReseauPoste.ImprimanteReseauID =
dbo.T_ImprimantesReseauEtPostes.ImprimanteID INNER JOIN
dbo.T_Postes ON
dbo.T_LienPostesImprimantesReseauPoste.NomPoste = dbo.T_Postes.NomPoste
WHERE dbo.T_Postes.NomPoste = 'pcpre001'
open impres
fetch next from impres
into @valeur14,@valeur15
set @toto=@valeur15
set @i=0
set @j=0
while @@FETCH_STATUS = 0
begin
set @i=@i+1
fetch next from impres into @valeur14,@valeur15
end
fetch first from impres into @valeur14,@valeur15
while @j<>@i
begin
fetch relative @j from impres into @valeur14,@valeur15
print @valeur15
set @j=@j+1
end
Close impres
DEALLOCATE impres

3 réponses

Avatar
Bouarroudj Mohamed
> En fait ce que je cherche c'est affiché le résultat de ma requete sur une
seul ligne ex: print @variable1+@variable2+@... sachant que je ne connais
pas
à l'avance le nombre de résulta retourné.




Essaie

declare @NomPoste varchar(255)
set @NomPoste = ''

select @NomPoste = @NomPoste + ', ' + T1.NomImprimante
from dbo.T_LienPostesImprimantesReseauPoste T1
inner join ....

print @NomPoste



Bouarroudj Mohamed
http://www.sqldbtools.com/
Avatar
Zeus
bonjour,

Merci pour ton aide.

Désolé je commence le T-SQL et je suis un peu lent :)

voila je comprends pas trop ce que tu veux dire, quand tu parle de T1 c'est
la suite de ma table dans mon from?

Autre point je ne peux pas utiliser une variable pour mon SELECT car cela me
renvoi plusieurs résultats et sql il aime pas :)

"A SELECT statement that assigns a value to a variable must not be combined
with data-retrieval operations."

"Bouarroudj Mohamed" a écrit :

> En fait ce que je cherche c'est affiché le résultat de ma requete sur une
> seul ligne ex: print @variable1+@variable2+@... sachant que je ne connais
> pas
> à l'avance le nombre de résulta retourné.


Essaie

declare @NomPoste varchar(255)
set @NomPoste = ''

select @NomPoste = @NomPoste + ', ' + T1.NomImprimante
from dbo.T_LienPostesImprimantesReseauPoste T1
inner join ....

print @NomPoste



Bouarroudj Mohamed
http://www.sqldbtools.com/





Avatar
Bouarroudj Mohamed
T1 est simplement un alias, vous pouvez utiliser n'importe quel alias. Vous
pouvez poster votre req qui genere l'erreur ci-dessous et j'essaierai de
vous aider.

select @NomImprimante = @NomImprimante + ', ' + T1.NomImprimante
devera marché car pour chaque ligne de ton resultat la colonne NomImprimante
est ajoutée a la variable @NomImprimante

"Zeus" wrote in message
news:
bonjour,

Merci pour ton aide.

Désolé je commence le T-SQL et je suis un peu lent :)

voila je comprends pas trop ce que tu veux dire, quand tu parle de T1
c'est
la suite de ma table dans mon from?

Autre point je ne peux pas utiliser une variable pour mon SELECT car cela
me
renvoi plusieurs résultats et sql il aime pas :)

"A SELECT statement that assigns a value to a variable must not be
combined
with data-retrieval operations."

"Bouarroudj Mohamed" a écrit :

> En fait ce que je cherche c'est affiché le résultat de ma requete sur
> une
> seul ligne ex: print @variable1+@variable2+@... sachant que je ne
> connais
> pas
> à l'avance le nombre de résulta retourné.


Essaie

declare @NomPoste varchar(255)
set @NomPoste = ''

select @NomPoste = @NomPoste + ', ' + T1.NomImprimante
from dbo.T_LienPostesImprimantesReseauPoste T1
inner join ....

print @NomPoste



Bouarroudj Mohamed
http://www.sqldbtools.com/