TOTVS - SQL e Relatório

03/01/2017

0

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

Responder

Posts

10/01/2017

Fabiano Carvalho

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

Responder

11/01/2017

Chromusmaster

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.
Responder

17/01/2017

Chromusmaster

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
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar