Ms Sql - Resultados diferentes entre Delphi e Management Studio

SQL Server

SQL

Delphi

09/02/2017

O select postado abaixo retorna resultados diferentes se executado no Delphi e no Management Studio.
O resultado do delphi está errado.


DECLARE @ANOMESREF VARCHAR(10)
DECLARE @COD_PLANOFORNECEDOR VARCHAR(10)
DECLARE @NRCOMPARACAO INTEGER

SET @ANOMESREF = '201701'
SET @COD_PLANOFORNECEDOR = '0181471'
SET @NRCOMPARACAO = 20

SELECT @NRCOMPARACAO, @ANOMESREF, PP.ADMISSAO, PP.COD_PLANOCONVENIO,
PP.NR_UNIMED, '' AS CPF, SUBSTRING(PP.ASSOCIADO,1,40),
SUBSTRING(PP.TITULAR,1,40), 'SEGURO NÃO LOCALIZADO NO SISTEMA'
,0,PP.VALOR_PLANO
FROM PREPAGAMENTO PP
WHERE 1 = 1
AND SUBSTRING(RTRIM(LTRIM(PP.NR_UNIMED)),5,12) + RTRIM(LTRIM(PP.COBERTURA))
NOT IN (
SELECT RTRIM(LTRIM(AP.COD_ASSOCPLANOCONVENIO)) + RTRIM(LTRIM(PC.COBERTURA))
FROM ASSOCPLANO AP,
PLANOCONVENIO PC
WHERE 1 = 1
AND AP.SITUACAO = 'A'
AND PC.FK_CONVENIO = 1 -- UNIMED
AND AP.FK_PLANOCONVENIO = PC.PK_PLANOCONVENIO
)
Ivan Almeida

Ivan Almeida

Curtidas 0

Melhor post

Jones Granatyr

Jones Granatyr

09/02/2017

Olá!

Quais são as diferenças no resultado? Quais componentes do Delphi está utilizando?

Jones
GOSTEI 1

Mais Respostas

Ivan Almeida

Ivan Almeida

09/02/2017

Caro Jonas,

A diferença está no número de registros encontrados, basicamente o teste "NOT IN (
SELECT RTRIM(LTRIM(AP.COD_ASSOCPLANOCONVENIO)) + RTRIM(LTRIM(PC.COBERTURA)) " é que está furando.

Como estava com muita pressa optei por criar tabelas temporárias com as colunas já concatenadas e desta forma funcionou. Teoricamente não tem o menor sentido, mas vai entender.

Muito obrigado pela ajuda.
GOSTEI 0
POSTAR