Skip to Content
0

​Problema Query Status Pedido de Vendas

Apr 27, 2017 at 11:29 AM

40

avatar image

Bom dia a todos!

Estou com o seguinte problema em uma consulta e gostaria da ajuda de voces:

Construí a seguinte consulta no SAP que me retorna o status dos pedidos de vendas

SELECT DISTINCT

T1.[DocNum] AS [PEDIDO],

CASE

WHEN T1.[DocStatus] = 'C' THEN 'Fechado'

WHEN T1.[DocStatus] = 'O' THEN 'Aberto - Impresso'

ELSE ''

END [STATUS],

T1.[CardCode] AS [CLIENTE],

T1.[CardName] AS [RAZÃO SOCIAL],

T0.[ItemCode] AS [ITEM],

T0.[Quantity] AS [QUANTIDADE],

T0.[UnitMsr] AS [UNIDADE],

T0.[Currency] AS [MOEDA],

T0.[Price] AS [VLR UNIT.],

T0.[Price] * T0.[Quantity] AS [TOTAL],

T0.[WhsCode] AS [DEPÓSITO]

FROM RDR1 T0

INNER JOIN ORDR T1 ON T0.[BaseCard] = T1.[CardCode]

WHERE T0.[ItemCode] =[%0] AND T1.[DocStatus] =[%1]

ORDER BY T1.DocNum ASC

Quando preencho os parâmetros de entrada de acordo com o código do item e status do documento...

ocorre um erro e o sistema retorna a seguinte mensagem

Porém, quando executo a mesma consulta pelo gerenciador de sql, o problema não ocorre:

Qual pode ser a solução para este problema?

Att

José Silva

001.png (4.7 kB)
002.png (3.0 kB)
003.png (31.9 kB)
10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

DIEGO LOTHER Apr 27, 2017 at 11:41 AM
0

Olá José,

Este erro está acontecendo porque o campo ItemCode e DocStatus são do tipo texto(nvarchar) então os parâmetros que você passa do sap para a query devem estar entre aspa simples.

Sua query corrigida:

SELECT DISTINCT
	T1.[DocNum] AS [PEDIDO],
	CASE
		WHEN T1.[DocStatus] = 'C' THEN 'Fechado'
		WHEN T1.[DocStatus] = 'O' THEN 'Aberto - Impresso'
	ELSE ''
	END [STATUS],
	T1.[CardCode] AS [CLIENTE],
	T1.[CardName] AS [RAZÃO SOCIAL],
	T0.[ItemCode] AS [ITEM],
	T0.[Quantity] AS [QUANTIDADE],
	T0.[UnitMsr] AS [UNIDADE],
	T0.[Currency] AS [MOEDA],
	T0.[Price] AS [VLR UNIT.],
	T0.[Price] * T0.[Quantity] AS [TOTAL],
	T0.[WhsCode] AS [DEPÓSITO]
FROM 
	RDR1 T0
	INNER JOIN ORDR T1 ON T0.[BaseCard] = T1.[CardCode]
WHERE 
	T0.[ItemCode] = '[%0]' AND T1.[DocStatus] = '[%1]'
ORDER BY 
	T1.DocNum ASC

Att,

Diego Lother

Share
10 |10000 characters needed characters left characters exceeded
José Silva Apr 27, 2017 at 12:28 PM
0

Diego Lother,

Obrigado pela dica, deu certo!

Share
10 |10000 characters needed characters left characters exceeded