Je tente de créer un menu déroulant qui limitera les résultats de la requête par acheteur d'article avec le code SQL suivant. Cependant, je reçois toujours une erreur indiquant que je dois déclarer la variable scalaire @ItemBuyer, en dépit du fait qu'elle est clairement déclarée et définie dans le code.Requête SAP B1 Renvoie l'erreur "Doit déclarer la variable scalaire"
DECLARE @ItemBuyer VARCHAR(30)
SET @ItemBuyer= /* T3.OwnerCode */ '[%1]'
DECLARE @SQL VARCHAR(MAX)
SET @SQL = 'SELECT T3.[DocNum] AS DocNumber, T3.[CardCode] AS
VendorCode, T3.[CardName] AS VendorName, T3.OwnerCode as BuyerID, T2.
[ItemCode] AS ItemNo, T2.[U_CPM_LegItemNo] AS LegacyItemNumber, T2.
[Dscription] AS ItemDescription, T2.[U_CPM_ConfDate] AS POConfirmDate,
T2.[OpenCreQty] AS CreditMemoAmount FROM [dbo].[OITG] T0 , [dbo].
[OITM] T1 INNER JOIN [dbo].[POR1] T2 ON T2.[ItemCode] = T1.
[ItemCode] INNER JOIN [dbo].[OPOR] T3 ON T3.[DocEntry] = T2.
[DocEntry] WHERE (T2.[OpenCreQty] > (0)) AND (T2.[U_CPM_ConfDate]
IS NULL ) and (T3.[OwnerCode] = @ItemBuyer)'
EXEC(@SQL)
J'ai aussi essayé de déclarer et définir la variable comme ci-dessous:
DECLARE @ItemBuyer VARCHAR(30) = /* T3.[OwnerCode] */ '[%0]'
Mais je reçois une erreur indiquant que la syntaxe est erronée, même à travers la variable retourne maintenant la valeur correcte. Im un peu coincé ici. J'espère que quelqu'un pourra m'aider.
Merci,
Krys
Pourquoi utilisez-vous SQL dynamique? –
Vous utilisez la requête dynamique et vous ne fournissez pas de valeur pour votre requête dynamique. – Hybridzz