TOTVS - SQL e Relatório

SQL Server

SQL

Off Topic

03/01/2017

Bom dia.
Tenho uma consulta onde ela trata quando o numero de linhas for '0' , ou seja quando o retorno não trouxer nada. Porém está trazendo como se fosse "uma nova consulta" e não continua a consulta anterior, logo dentro do TOTVS não consigo utilizar os dados tratados, somente quando há resultados. uso a consulta em um relatório

Segue o trecho do tratamento (lógico que houve a declaração e set dos dados da variável)
"
SELECT @ROWSCOUNT = @@ROWCOUNT
IF @ROWSCOUNT=0 (
SELECT
SINSTITUICAO.NOME [INSTITUICAO],
REPLACE (SPSPROCESSOSELETIVO.NOMEARQUIVOEDITAL, '.pdf', '') [nomeedital]
FROM SINSTITUICAO
INNER JOIN SPSPROCESSOSELETIVO ON (SINSTITUICAO.CODINST=SPSPROCESSOSELETIVO.CODINST AND IDPS=:idps)
WHERE SINSTITUICAO.CODINST=SPSPROCESSOSELETIVO.CODINST)
"

Há alguma maneira de fazer o resultado sair como " um só" e não como se fosse duas consultas diferentes ?
Chromusmaster

Chromusmaster

Curtidas 0

Respostas

Fabiano Carvalho

Fabiano Carvalho

03/01/2017

Sempre que for postar código utilize a tag <code>

Tente fazer assim
declare @ROWSCOUNT int

select @ROWSCOUNT = @@ROWCOUNT

IF @ROWSCOUNT = 0 
begin
(SELECT
SINSTITUICAO.NOME [INSTITUICAO], 
REPLACE (SPSPROCESSOSELETIVO.NOMEARQUIVOEDITAL, '.pdf', '') [nomeedital] 
FROM SINSTITUICAO 
INNER JOIN SPSPROCESSOSELETIVO ON (SINSTITUICAO.CODINST=SPSPROCESSOSELETIVO.CODINST AND IDPS=:idps)
WHERE SINSTITUICAO.CODINST=SPSPROCESSOSELETIVO.CODINST) 
end
else
begin
	print 'Entrou no se não, possui registros ' + convert(varchar(10),@ROWSCOUNT)
end

GOSTEI 0
Chromusmaster

Chromusmaster

03/01/2017

Sempre que for postar código utilize a tag <code>

Tente fazer assim
declare @ROWSCOUNT int

select @ROWSCOUNT = @@ROWCOUNT

IF @ROWSCOUNT = 0 
begin
(SELECT
SINSTITUICAO.NOME [INSTITUICAO], 
REPLACE (SPSPROCESSOSELETIVO.NOMEARQUIVOEDITAL, '.pdf', '') [nomeedital] 
FROM SINSTITUICAO 
INNER JOIN SPSPROCESSOSELETIVO ON (SINSTITUICAO.CODINST=SPSPROCESSOSELETIVO.CODINST AND IDPS=:idps)
WHERE SINSTITUICAO.CODINST=SPSPROCESSOSELETIVO.CODINST) 
end
else
begin
	print 'Entrou no se não, possui registros ' + convert(varchar(10),@ROWSCOUNT)
end



Obrigado pela dica da Tag, não sabia. Ainda assim continuou trazendo "dois resultados" ao invés de trazer como um resultado só. Quando a SQl buscar algum dado em outro banco ele deve ao menos trazer no banco principal o nome da instituição e edital do mesmo. Porém ele traz como se fosse dois resultados distintos e gostaria de saber se há alguma maneira de trazer como um resultado único.
GOSTEI 0
Chromusmaster

Chromusmaster

03/01/2017

Para quem passar pelo mesmo problema, nos relatórios da TOTVS existem os chamaods controles de dados, eles permitem trazer ou remover dados nas exibições das consultas
GOSTEI 0
POSTAR