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

Parametre dans une requête SQL

5 réponses
Avatar
Ptit Dave
Bonjour

j'exécute une requete SQL et je passe un paramètre ds cette requête. le
résultat de celle-ci comprend plusieurs lignes.
Mais en passant un paramètre je ne réussis à récuperer que le résultat de la
dernière ligne
Comment dois-je faire pour pouvoir avoir accès à toutes les valeurs ?
est ce que quelqu'un pourrait m'aider ?
D'avance merci

5 réponses

Avatar
Fred BROUARD
poste ton code, sans cela impossible de comprendre ton problème !

A +

Ptit Dave a écrit:
Bonjour

j'exécute une requete SQL et je passe un paramètre ds cette requête. le
résultat de celle-ci comprend plusieurs lignes.
Mais en passant un paramètre je ne réussis à récuperer que le résultat de la
dernière ligne
Comment dois-je faire pour pouvoir avoir accès à toutes les valeurs ?
est ce que quelqu'un pourrait m'aider ?
D'avance merci




--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Ptit Dave
voila ma requete

DECLARE @QteStock int
DECLARE @QteCde int
SET @QteStock = 0
SET @QteCde = 0

SELECT @QteCde = PTSOUSLIGNECOMMANDE.CMDLL_QTE,
@QteStock = SUM(PTOBJSTK.OBJSTK_QTEUNT) - SUM(PTOBJSTK.OBJSTK_QTEUNTECS) +
SUM(PTOBJSTK.OBJSTK_QTEUNTECE)
FROM PTORDRELIVRAISON
LEFT OUTER JOIN PTCOMMANDE ON PTORDRELIVRAISON.TYPCDE_CODTYPCDE =
PTCOMMANDE.TYPCDE_CODTYPCDE AND PTORDRELIVRAISON.CMD_ID = PTCOMMANDE.CMD_ID
LEFT OUTER JOIN PTLIGNECOMMANDE ON PTCOMMANDE.TYPCDE_CODTYPCDE =
PTLIGNECOMMANDE.TYPCDE_CODTYPCDE AND PTCOMMANDE.CMD_ID =
PTLIGNECOMMANDE.CMD_ID
LEFT OUTER JOIN PTSOUSLIGNECOMMANDE ON PTLIGNECOMMANDE.TYPCDE_CODTYPCDE =
PTSOUSLIGNECOMMANDE.TYPCDE_CODTYPCDE AND
PTLIGNECOMMANDE.CMD_ID = PTSOUSLIGNECOMMANDE.CMD_ID AND
PTLIGNECOMMANDE.CMDL_ID = PTSOUSLIGNECOMMANDE.CMDL_ID AND
PTLIGNECOMMANDE.CMDL_TYPESTATUT = PTSOUSLIGNECOMMANDE.CMDL_TYPESTATUT
WHERE (PTORDRELIVRAISON.OLE_DATLIV = '20050510') GROUP BY
PTORDRELIVRAISON.OLE_IDOL, PTCOMMANDE.CMD_ID, PTLIGNECOMMANDE.CMDL_ID,
PTLIGNECOMMANDE.CMDL_TYPESTATUT,
PTSOUSLIGNECOMMANDE.CMDLL_ID, PTSOUSLIGNECOMMANDE.CMDLL_QTE,
PTLIGNECOMMANDE.ART_CODART

en fait, je veux récupérer les quantités commandées et les quantités en
stock et les mettre dans des variables pour les traiter ensuite


"Fred BROUARD" a écrit :

poste ton code, sans cela impossible de comprendre ton problème !

A +

Ptit Dave a écrit:
> Bonjour
>
> j'exécute une requete SQL et je passe un paramètre ds cette requête. le
> résultat de celle-ci comprend plusieurs lignes.
> Mais en passant un paramètre je ne réussis à récuperer que le résultat de la
> dernière ligne
> Comment dois-je faire pour pouvoir avoir accès à toutes les valeurs ?
> est ce que quelqu'un pourrait m'aider ?
> D'avance merci
>

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************




Avatar
Fred BROUARD
Il faut utiliser un curseur et cecei dans un boucle. A lire sur le sujet :
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.7

De plus ta requêtes est incompréhensible :

SELECT @QteCde = SLC.CMDLL_QTE,
@QteStock = SUM(PTOBJSTK.OBJSTK_QTEUNT)
- SUM(PTOBJSTK.OBJSTK_QTEUNTECS)
+ SUM(PTOBJSTK.OBJSTK_QTEUNTECE)

FROM PTORDRELIVRAISON OL
LEFT OUTER JOIN PTCOMMANDE C
ON OL.TYPCDE_CODTYPCDE = C.TYPCDE_CODTYPCDE
AND OL.CMD_ID = C.CMD_ID
LEFT OUTER JOIN PTLIGNECOMMANDE LC
ON C.TYPCDE_CODTYPCDE = LC.TYPCDE_CODTYPCDE
AND C.CMD_ID = LC.CMD_ID
LEFT OUTER JOIN PTSOUSLIGNECOMMANDE SLC
ON LC.TYPCDE_CODTYPCDE = SLC.TYPCDE_CODTYPCDE
AND LC.CMD_ID = SLC.CMD_ID
AND LC.CMDL_ID = SLC.CMDL_ID
AND LC.CMDL_TYPESTATUT = SLC.CMDL_TYPESTATUT

WHERE OL.OLE_DATLIV = '20050510'
GROUP BY OL.OLE_IDOL, C.CMD_ID, LC.CMDL_ID,
LC.CMDL_TYPESTATUT, SLC.CMDLL_ID,
SLC.CMDLL_QTE, LC.ART_CODART

en effet l'objet PTOBJSTK n'est pas présent dans la clause FROM !

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************

Ptit Dave a écrit:
voila ma requete

DECLARE @QteStock int
DECLARE @QteCde int
SET @QteStock = 0
SET @QteCde = 0

SELECT @QteCde = PTSOUSLIGNECOMMANDE.CMDLL_QTE,
@QteStock = SUM(PTOBJSTK.OBJSTK_QTEUNT) - SUM(PTOBJSTK.OBJSTK_QTEUNTECS) +
SUM(PTOBJSTK.OBJSTK_QTEUNTECE)
FROM PTORDRELIVRAISON
LEFT OUTER JOIN PTCOMMANDE ON PTORDRELIVRAISON.TYPCDE_CODTYPCDE =
PTCOMMANDE.TYPCDE_CODTYPCDE AND PTORDRELIVRAISON.CMD_ID = PTCOMMANDE.CMD_ID
LEFT OUTER JOIN PTLIGNECOMMANDE ON PTCOMMANDE.TYPCDE_CODTYPCDE =
PTLIGNECOMMANDE.TYPCDE_CODTYPCDE AND PTCOMMANDE.CMD_ID =
PTLIGNECOMMANDE.CMD_ID
LEFT OUTER JOIN PTSOUSLIGNECOMMANDE ON PTLIGNECOMMANDE.TYPCDE_CODTYPCDE =
PTSOUSLIGNECOMMANDE.TYPCDE_CODTYPCDE AND
PTLIGNECOMMANDE.CMD_ID = PTSOUSLIGNECOMMANDE.CMD_ID AND
PTLIGNECOMMANDE.CMDL_ID = PTSOUSLIGNECOMMANDE.CMDL_ID AND
PTLIGNECOMMANDE.CMDL_TYPESTATUT = PTSOUSLIGNECOMMANDE.CMDL_TYPESTATUT
WHERE (PTORDRELIVRAISON.OLE_DATLIV = '20050510') GROUP BY
PTORDRELIVRAISON.OLE_IDOL, PTCOMMANDE.CMD_ID, PTLIGNECOMMANDE.CMDL_ID,
PTLIGNECOMMANDE.CMDL_TYPESTATUT,
PTSOUSLIGNECOMMANDE.CMDLL_ID, PTSOUSLIGNECOMMANDE.CMDLL_QTE,
PTLIGNECOMMANDE.ART_CODART

en fait, je veux récupérer les quantités commandées et les quantités en
stock et les mettre dans des variables pour les traiter ensuite


"Fred BROUARD" a écrit :


poste ton code, sans cela impossible de comprendre ton problème !

A +

Ptit Dave a écrit:

Bonjour

j'exécute une requete SQL et je passe un paramètre ds cette requête. le
résultat de celle-ci comprend plusieurs lignes.
Mais en passant un paramètre je ne réussis à récuperer que le résultat de la
dernière ligne
Comment dois-je faire pour pouvoir avoir accès à toutes les valeurs ?
est ce que quelqu'un pourrait m'aider ?
D'avance merci




--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************






Avatar
Ptit Dave
Merci pour ton aide.
En effet, en faisant copier coller j ai oublié le LEFT OUTER JOIN contenant
la table PTOBJSTK.
une autre question : est il possible d'utiliser les curseurs dans reporting
services ?

@+

"Fred BROUARD" a écrit :

Il faut utiliser un curseur et cecei dans un boucle. A lire sur le sujet :
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.7

De plus ta requêtes est incompréhensible :

SELECT @QteCde = SLC.CMDLL_QTE,
@QteStock = SUM(PTOBJSTK.OBJSTK_QTEUNT)
- SUM(PTOBJSTK.OBJSTK_QTEUNTECS)
+ SUM(PTOBJSTK.OBJSTK_QTEUNTECE)

FROM PTORDRELIVRAISON OL
LEFT OUTER JOIN PTCOMMANDE C
ON OL.TYPCDE_CODTYPCDE = C.TYPCDE_CODTYPCDE
AND OL.CMD_ID = C.CMD_ID
LEFT OUTER JOIN PTLIGNECOMMANDE LC
ON C.TYPCDE_CODTYPCDE = LC.TYPCDE_CODTYPCDE
AND C.CMD_ID = LC.CMD_ID
LEFT OUTER JOIN PTSOUSLIGNECOMMANDE SLC
ON LC.TYPCDE_CODTYPCDE = SLC.TYPCDE_CODTYPCDE
AND LC.CMD_ID = SLC.CMD_ID
AND LC.CMDL_ID = SLC.CMDL_ID
AND LC.CMDL_TYPESTATUT = SLC.CMDL_TYPESTATUT

WHERE OL.OLE_DATLIV = '20050510'
GROUP BY OL.OLE_IDOL, C.CMD_ID, LC.CMDL_ID,
LC.CMDL_TYPESTATUT, SLC.CMDLL_ID,
SLC.CMDLL_QTE, LC.ART_CODART

en effet l'objet PTOBJSTK n'est pas présent dans la clause FROM !

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************

Ptit Dave a écrit:
> voila ma requete
>
> DECLARE @QteStock int
> DECLARE @QteCde int
> SET @QteStock = 0
> SET @QteCde = 0
>
> SELECT @QteCde = PTSOUSLIGNECOMMANDE.CMDLL_QTE,
> @QteStock = SUM(PTOBJSTK.OBJSTK_QTEUNT) - SUM(PTOBJSTK.OBJSTK_QTEUNTECS) +
> SUM(PTOBJSTK.OBJSTK_QTEUNTECE)
> FROM PTORDRELIVRAISON
> LEFT OUTER JOIN PTCOMMANDE ON PTORDRELIVRAISON.TYPCDE_CODTYPCDE =
> PTCOMMANDE.TYPCDE_CODTYPCDE AND PTORDRELIVRAISON.CMD_ID = PTCOMMANDE.CMD_ID
> LEFT OUTER JOIN PTLIGNECOMMANDE ON PTCOMMANDE.TYPCDE_CODTYPCDE =
> PTLIGNECOMMANDE.TYPCDE_CODTYPCDE AND PTCOMMANDE.CMD_ID =
> PTLIGNECOMMANDE.CMD_ID
> LEFT OUTER JOIN PTSOUSLIGNECOMMANDE ON PTLIGNECOMMANDE.TYPCDE_CODTYPCDE =
> PTSOUSLIGNECOMMANDE.TYPCDE_CODTYPCDE AND
> PTLIGNECOMMANDE.CMD_ID = PTSOUSLIGNECOMMANDE.CMD_ID AND
> PTLIGNECOMMANDE.CMDL_ID = PTSOUSLIGNECOMMANDE.CMDL_ID AND
> PTLIGNECOMMANDE.CMDL_TYPESTATUT = PTSOUSLIGNECOMMANDE.CMDL_TYPESTATUT
> WHERE (PTORDRELIVRAISON.OLE_DATLIV = '20050510') GROUP BY
> PTORDRELIVRAISON.OLE_IDOL, PTCOMMANDE.CMD_ID, PTLIGNECOMMANDE.CMDL_ID,
> PTLIGNECOMMANDE.CMDL_TYPESTATUT,
> PTSOUSLIGNECOMMANDE.CMDLL_ID, PTSOUSLIGNECOMMANDE.CMDLL_QTE,
> PTLIGNECOMMANDE.ART_CODART
>
> en fait, je veux récupérer les quantités commandées et les quantités en
> stock et les mettre dans des variables pour les traiter ensuite
>
>
> "Fred BROUARD" a écrit :
>
>
>>poste ton code, sans cela impossible de comprendre ton problème !
>>
>>A +
>>
>>Ptit Dave a écrit:
>>
>>>Bonjour
>>>
>>>j'exécute une requete SQL et je passe un paramètre ds cette requête. le
>>>résultat de celle-ci comprend plusieurs lignes.
>>>Mais en passant un paramètre je ne réussis à récuperer que le résultat de la
>>>dernière ligne
>>>Comment dois-je faire pour pouvoir avoir accès à toutes les valeurs ?
>>>est ce que quelqu'un pourrait m'aider ?
>>>D'avance merci
>>>
>>
>>--
>>Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
>>Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
>>Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
>>************************ www.datasapiens.com *************************
>>
>>




Avatar
Fred BROUARD
A partir du moment oun RS accepte une SP pas de blème !

A +

Ptit Dave a écrit:
Merci pour ton aide.
En effet, en faisant copier coller j ai oublié le LEFT OUTER JOIN contenant
la table PTOBJSTK.
une autre question : est il possible d'utiliser les curseurs dans reporting
services ?

@+

"Fred BROUARD" a écrit :


Il faut utiliser un curseur et cecei dans un boucle. A lire sur le sujet :
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.7

De plus ta requêtes est incompréhensible :

SELECT @QteCde = SLC.CMDLL_QTE,
@QteStock = SUM(PTOBJSTK.OBJSTK_QTEUNT)
- SUM(PTOBJSTK.OBJSTK_QTEUNTECS)
+ SUM(PTOBJSTK.OBJSTK_QTEUNTECE)

FROM PTORDRELIVRAISON OL
LEFT OUTER JOIN PTCOMMANDE C
ON OL.TYPCDE_CODTYPCDE = C.TYPCDE_CODTYPCDE
AND OL.CMD_ID = C.CMD_ID
LEFT OUTER JOIN PTLIGNECOMMANDE LC
ON C.TYPCDE_CODTYPCDE = LC.TYPCDE_CODTYPCDE
AND C.CMD_ID = LC.CMD_ID
LEFT OUTER JOIN PTSOUSLIGNECOMMANDE SLC
ON LC.TYPCDE_CODTYPCDE = SLC.TYPCDE_CODTYPCDE
AND LC.CMD_ID = SLC.CMD_ID
AND LC.CMDL_ID = SLC.CMDL_ID
AND LC.CMDL_TYPESTATUT = SLC.CMDL_TYPESTATUT

WHERE OL.OLE_DATLIV = '20050510'
GROUP BY OL.OLE_IDOL, C.CMD_ID, LC.CMDL_ID,
LC.CMDL_TYPESTATUT, SLC.CMDLL_ID,
SLC.CMDLL_QTE, LC.ART_CODART

en effet l'objet PTOBJSTK n'est pas présent dans la clause FROM !

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************

Ptit Dave a écrit:

voila ma requete

DECLARE @QteStock int
DECLARE @QteCde int
SET @QteStock = 0
SET @QteCde = 0

SELECT @QteCde = PTSOUSLIGNECOMMANDE.CMDLL_QTE,
@QteStock = SUM(PTOBJSTK.OBJSTK_QTEUNT) - SUM(PTOBJSTK.OBJSTK_QTEUNTECS) +
SUM(PTOBJSTK.OBJSTK_QTEUNTECE)
FROM PTORDRELIVRAISON
LEFT OUTER JOIN PTCOMMANDE ON PTORDRELIVRAISON.TYPCDE_CODTYPCDE =
PTCOMMANDE.TYPCDE_CODTYPCDE AND PTORDRELIVRAISON.CMD_ID = PTCOMMANDE.CMD_ID
LEFT OUTER JOIN PTLIGNECOMMANDE ON PTCOMMANDE.TYPCDE_CODTYPCDE =
PTLIGNECOMMANDE.TYPCDE_CODTYPCDE AND PTCOMMANDE.CMD_ID =
PTLIGNECOMMANDE.CMD_ID
LEFT OUTER JOIN PTSOUSLIGNECOMMANDE ON PTLIGNECOMMANDE.TYPCDE_CODTYPCDE =
PTSOUSLIGNECOMMANDE.TYPCDE_CODTYPCDE AND
PTLIGNECOMMANDE.CMD_ID = PTSOUSLIGNECOMMANDE.CMD_ID AND
PTLIGNECOMMANDE.CMDL_ID = PTSOUSLIGNECOMMANDE.CMDL_ID AND
PTLIGNECOMMANDE.CMDL_TYPESTATUT = PTSOUSLIGNECOMMANDE.CMDL_TYPESTATUT
WHERE (PTORDRELIVRAISON.OLE_DATLIV = '20050510') GROUP BY
PTORDRELIVRAISON.OLE_IDOL, PTCOMMANDE.CMD_ID, PTLIGNECOMMANDE.CMDL_ID,
PTLIGNECOMMANDE.CMDL_TYPESTATUT,
PTSOUSLIGNECOMMANDE.CMDLL_ID, PTSOUSLIGNECOMMANDE.CMDLL_QTE,
PTLIGNECOMMANDE.ART_CODART

en fait, je veux récupérer les quantités commandées et les quantités en
stock et les mettre dans des variables pour les traiter ensuite


"Fred BROUARD" a écrit :



poste ton code, sans cela impossible de comprendre ton problème !

A +

Ptit Dave a écrit:


Bonjour

j'exécute une requete SQL et je passe un paramètre ds cette requête. le
résultat de celle-ci comprend plusieurs lignes.
Mais en passant un paramètre je ne réussis à récuperer que le résultat de la
dernière ligne
Comment dois-je faire pour pouvoir avoir accès à toutes les valeurs ?
est ce que quelqu'un pourrait m'aider ?
D'avance merci




--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************













--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************