Jump to content

Parametros com mais de um valor (mesmo tipo de dado)


Go to solution Solved by lucas.guimaraes,

Recommended Posts


  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  5
  • Content Per Day:  0.02
  • Reputation:   2
  • Achievement Points:  39
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  44
  • Device:  Windows

Olá Pessoal, bom dia!

Estou utilizando parâmetros em um relatório cuja fonte de dados é uma consulta SQL própria/customizada.

O parâmetro TIPOCURSO precisa comportar mais de um dado caso o usuário queira e para isso a consulta SQL foi ajustada para essa filtragem usando a linha 'AND STIPOCURSO.CODTIPOCURSO IN (:TIPOCURSO)' no WHERE. 

Porém quando usuário usa esse parâmetro, só está retornando registros quando é informado apenas um valor (exemplo: 1) para TIPOCURSO, caso o usuário queira visualizar informações e mais de um TIPOCURSO (exemplo: 1,2) não é retornado nenhum registro.

Minha duvida é, se isso é possível fazer usando parâmetros e se estou fazendo da maneira correta

Anexei a mensagem uma imagem de como foi realizado esse processo

 

Atenciosamente, 

Lucas de Oliveira Guimarães.

IMAGEM_FORUM.png

Link to comment
Share on other sites


  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  482
  • Content Per Day:  0.21
  • Reputation:   135
  • Achievement Points:  3,213
  • Solved Content:  0
  • Days Won:  64
  • Status:  Offline
  • Age:  35
  • Device:  Android

@lucas.guimaraes, boa noite!

Tudo certo ?

A pouco tempo conseguimos resolver essa questão!

 Caso não consigas fazer, por favor, coloque sua query no post que iremos lhe ajudar! 

 

Abraços

Link to comment
Share on other sites


  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  5
  • Content Per Day:  0.02
  • Reputation:   2
  • Achievement Points:  39
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  44
  • Device:  Windows

Bom dia @luisgustavogomes !

Criei a função 'fncSplitTexto' porém, não consegui aplicar na consulta com sucesso me baseando no seu exemplo do post de 10/05/2022. O 'COMPATIBILITY_LEVEL' do meu banco 'CorporeRM' é 110 e acredito que isso é algo que não posso alterar.

Encaminho a consulta original anexada a mensagem sem usar a função.

Preciso aplicar a 'fncSplitTexto' em todos campos mencionados no WHERE que estão usando a clausula 'IN', isso seria possível?

Caso não tome muito seu tempo poderia me exemplificar o uso da função em apenas um dos campos da filtragem da minha consulta?

 

Atenciosamente,

Lucas de Oliveira Guimaraes

 

SQLQuery4.sql

Link to comment
Share on other sites


  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  482
  • Content Per Day:  0.21
  • Reputation:   135
  • Achievement Points:  3,213
  • Solved Content:  0
  • Days Won:  64
  • Status:  Offline
  • Age:  35
  • Device:  Android

@lucas.guimaraes, boa tarde!

Sobre o collation vai depender da sua versão do SQLSERVER, sobre a consulta, fiz esse exemplo baseado na sua query! 

Basicamente, utilizo o split para formar tabelas e utilizo o join para filtrar! 

USE CORPORERM
GO 

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;

DECLARE @CODCOLIGADA INT = 0 
DECLARE @TIPOCURSO VARCHAR(MAX) = '1,2,4,5'
DECLARE @CURSO VARCHAR(MAX) = '6,90,100'

;WITH FILTRO_TIPOCURSO
AS
(
	SELECT 
		FS.ID, CONVERT(INT,FS.PALAVRA) AS 'TIPOCURSO'
	FROM [dbo].[fncSplitTexto](@TIPOCURSO, ',') FS

)
, FILTRO_CURSO
AS
(
	SELECT 
		FS.ID, CONVERT(INT,FS.PALAVRA) AS 'CURSO'
	FROM [dbo].[fncSplitTexto](@CURSO, ',') FS

)
SELECT DISTINCT
     SCURSO.CODCURSO
    ,SCURSO.NOME CURSO
    ,STIPOCURSO.CODTIPOCURSO
    ,STIPOCURSO.NOME TIPOCURSO
    ,YEAR(FLAN.DATAVENCIMENTO) ANO
    ,SCONTRATO.RA MATRICULA
    ,PPESSOA.NOME NOME
    ,SPARCELA.PARCELA PARCELA
    ,SPLETIVO.CODPERLET
    ,FLAN.VALORORIGINAL VALOR
    ,FLAN.DATAVENCIMENTO
FROM DBO.SCONTRATO 
JOIN DBO.SPARCELA ON (SCONTRATO.CODCOLIGADA = SPARCELA.CODCOLIGADA  AND SCONTRATO.RA = SPARCELA.RA AND SCONTRATO.IDPERLET = SPARCELA.IDPERLET AND SCONTRATO.CODCONTRATO = SPARCELA.CODCONTRATO)
JOIN DBO.SLAN ON (SCONTRATO.CODCOLIGADA = SLAN.CODCOLIGADA AND SPARCELA.IDPARCELA = SLAN.IDPARCELA)
JOIN DBO.FLAN ON (SCONTRATO.CODCOLIGADA = FLAN.CODCOLIGADA  AND SLAN.IDLAN = FLAN.IDLAN)
JOIN DBO.SALUNO ON (SCONTRATO.CODCOLIGADA = SALUNO.CODCOLIGADA  AND SCONTRATO.RA = SALUNO.RA)
JOIN DBO.PPESSOA ON (SALUNO.CODPESSOA = PPESSOA.CODIGO)
JOIN DBO.STIPOCURSO ON (SCONTRATO.CODCOLIGADA = STIPOCURSO.CODCOLIGADA  AND SCONTRATO.CODTIPOCURSO = STIPOCURSO.CODTIPOCURSO)
JOIN DBO.SHABILITACAOFILIAL ON (SCONTRATO.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA  AND SCONTRATO.IDHABILITACAOFILIAL = SHABILITACAOFILIAL.IDHABILITACAOFILIAL)
JOIN DBO.SCURSO ON (SCONTRATO.CODCOLIGADA = SCURSO.CODCOLIGADA  AND SHABILITACAOFILIAL.CODTIPOCURSO = SCURSO.CODTIPOCURSO AND SHABILITACAOFILIAL.CODCURSO = SCURSO.CODCURSO)
JOIN DBO.SPLETIVO ON (SCONTRATO.CODCOLIGADA = SPLETIVO.CODCOLIGADA AND SCONTRATO.IDPERLET = SPLETIVO.IDPERLET)
JOIN DBO.SHABILITACAOFILIALPL ON SCONTRATO.CODCOLIGADA = SHABILITACAOFILIALPL.CODCOLIGADA AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SHABILITACAOFILIALPL.IDHABILITACAOFILIAL
JOIN DBO.SSERVICO ON (SCONTRATO.CODCOLIGADA = SSERVICO.CODCOLIGADA AND SPARCELA.CODSERVICO = SSERVICO.CODSERVICO)
JOIN DBO.SMATRICULA ON (SCONTRATO.CODCOLIGADA = SMATRICULA.CODCOLIGADA  AND SCONTRATO.RA = SMATRICULA.RA AND SCONTRATO.IDPERLET = SMATRICULA.IDPERLET AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SMATRICULA.IDHABILITACAOFILIAL)
JOIN DBO.SSTATUS ON (SMATRICULA.CODCOLIGADA = SSTATUS.CODCOLIGADA AND SMATRICULA.CODSTATUS = SSTATUS.CODSTATUS )
/*****/
JOIN FILTRO_TIPOCURSO ON (FILTRO_TIPOCURSO.TIPOCURSO = SCURSO.CODTIPOCURSO)
--AND SCURSO.CODTIPOCURSO IN (:TIPOCURSO)
JOIN FILTRO_CURSO ON (FILTRO_CURSO.CURSO  = SCURSO.CODCURSO)
--AND SCURSO.CODCURSO IN (:CODCURSO)
/*****/
WHERE SCONTRATO.CODCOLIGADA = IIF(@CODCOLIGADA = 0 , SCONTRATO.CODCOLIGADA , @CODCOLIGADA)
AND FLAN.STATUSLAN NOT IN (0,4) 
AND YEAR(FLAN.MESDECOMPETENCIA) = :COMPETENCIAANO
AND MONTH(FLAN.MESDECOMPETENCIA) = :COMPETENCIAMES
AND SSERVICO.CODSERVICO IN (1282)  (:CODSERVICO)
AND SSTATUS.CODSTATUS IN (14) (:CODSTATUS) 
ORDER BY STIPOCURSO.NOME, SCURSO.NOME, PPESSOA.NOME,SPARCELA.PARCELA

Espero lhe ajudar! 

 

Abraços

Link to comment
Share on other sites


  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  5
  • Content Per Day:  0.02
  • Reputation:   2
  • Achievement Points:  39
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  44
  • Device:  Windows

Boa tarde @luisgustavogomes !

Ao executar a consulta direto no SQL Server funciona.

Após incorporar consulta no RM Reports através da tela de 'Editar Sentença' ocorrem alguns erros e o relatório não retorna nenhum registro (fornecendo os mesmos dados para os parâmetros definidos na consulta)

Você já se deparou com esses erros e mensagens?  Consegue me orientar?

1 - logo após clicar em Salvar

mensagemSalvarConsulta.jpg.7f101061b5b2ed6fd6a687239a751cd8.jpg

 

2- logo após fechar a primeira mensagem exibida

erroSalvarConsulta.thumb.jpg.634297501146f7f4aaf8ccc0f03b7931.jpg

 

3- após clicar em OK, da tela de Editar Sentença

erroAposClicarOkTelaEditarSentenca.jpg.aaf0bdd7056a56ce451f0b2ec4cc9c33.jpg

 

Consulta que está sendo usada...

 

/* faturamento - analitico */

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;

DECLARE @CODCOLIGADA INT = 0 
DECLARE @CODTIPOCURSO VARCHAR(500) = :CODTIPOCURSO
DECLARE @CODCURSO VARCHAR(500) = :CODCURSO

;WITH FILTRO_TIPOCURSO
AS
(
    SELECT 
        FS.ID, CONVERT(INT,FS.PALAVRA) AS 'TIPOCURSO'
    FROM [dbo].[fncSplitTexto](@CODTIPOCURSO, ',') FS

)
, FILTRO_CURSO
AS
(
    SELECT 
        FS.ID, CONVERT(INT,FS.PALAVRA) AS 'CURSO'
    FROM [dbo].[fncSplitTexto](@CODCURSO, ',') FS

)
SELECT DISTINCT
     SCURSO.CODCURSO
    ,SCURSO.NOME CURSO
    ,STIPOCURSO.CODTIPOCURSO
    ,STIPOCURSO.NOME TIPOCURSO
    ,YEAR(FLAN.DATAVENCIMENTO) ANO
    ,SCONTRATO.RA MATRICULA
    ,PPESSOA.NOME NOME
    ,SPARCELA.PARCELA PARCELA
    ,SPLETIVO.CODPERLET
    ,FLAN.VALORORIGINAL VALOR
    ,FLAN.DATAVENCIMENTO
FROM DBO.SCONTRATO (NOLOCK) 
JOIN DBO.SPARCELA (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SPARCELA.CODCOLIGADA  
                               AND SCONTRATO.RA = SPARCELA.RA 
                                 AND SCONTRATO.IDPERLET = SPARCELA.IDPERLET 
                               AND SCONTRATO.CODCONTRATO = SPARCELA.CODCONTRATO)
JOIN DBO.SLAN (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SLAN.CODCOLIGADA 
                           AND SPARCELA.IDPARCELA = SLAN.IDPARCELA)
JOIN DBO.FLAN (NOLOCK) ON (SCONTRATO.CODCOLIGADA = FLAN.CODCOLIGADA 
                           AND SLAN.IDLAN = FLAN.IDLAN)
JOIN DBO.SALUNO (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SALUNO.CODCOLIGADA 
                             AND SCONTRATO.RA = SALUNO.RA)
JOIN DBO.PPESSOA (NOLOCK) ON (SALUNO.CODPESSOA = PPESSOA.CODIGO)
JOIN DBO.STIPOCURSO (NOLOCK) ON (SCONTRATO.CODCOLIGADA = STIPOCURSO.CODCOLIGADA  
                                 AND SCONTRATO.CODTIPOCURSO = STIPOCURSO.CODTIPOCURSO)
JOIN DBO.SHABILITACAOFILIAL (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA  
                                         AND SCONTRATO.IDHABILITACAOFILIAL = SHABILITACAOFILIAL.IDHABILITACAOFILIAL)
JOIN DBO.SCURSO (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SCURSO.CODCOLIGADA  
                             AND SHABILITACAOFILIAL.CODTIPOCURSO = SCURSO.CODTIPOCURSO 
                             AND SHABILITACAOFILIAL.CODCURSO = SCURSO.CODCURSO)
JOIN DBO.SPLETIVO (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SPLETIVO.CODCOLIGADA 
                               AND SCONTRATO.IDPERLET = SPLETIVO.IDPERLET)
JOIN DBO.SHABILITACAOFILIALPL (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SHABILITACAOFILIALPL.CODCOLIGADA 
                                           AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SHABILITACAOFILIALPL.IDHABILITACAOFILIAL)
JOIN DBO.SSERVICO (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SSERVICO.CODCOLIGADA 
                               AND SPARCELA.CODSERVICO = SSERVICO.CODSERVICO)
JOIN DBO.SMATRICULA (NOLOCK) ON (SCONTRATO.CODCOLIGADA = SMATRICULA.CODCOLIGADA  
                                 AND SCONTRATO.RA = SMATRICULA.RA 
                                 AND SCONTRATO.IDPERLET = SMATRICULA.IDPERLET 
                                 AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SMATRICULA.IDHABILITACAOFILIAL)
JOIN DBO.SSTATUS (NOLOCK) ON (SMATRICULA.CODCOLIGADA = SSTATUS.CODCOLIGADA 
                              AND SMATRICULA.CODSTATUS = SSTATUS.CODSTATUS )
JOIN FILTRO_TIPOCURSO (NOLOCK) ON (FILTRO_TIPOCURSO.TIPOCURSO = SCURSO.CODTIPOCURSO)
JOIN FILTRO_CURSO (NOLOCK) ON (FILTRO_CURSO.CURSO  = SCURSO.CODCURSO)

 WHERE FLAN.STATUSLAN NOT IN (0,4) 
 /*AND year(FLAN.DATAVENCIMENTO) >= 2016*/ 
 AND YEAR(FLAN.MESDECOMPETENCIA) = 2023 /*:COMPETENCIAANO*/
 AND MONTH(FLAN.MESDECOMPETENCIA) = 4 /*:COMPETENCIAMES*/
 AND SSERVICO.CODSERVICO IN (1282) /*(:CODSERVICO)*/
 AND SSTATUS.CODSTATUS IN (14) /*(:CODSTATUS)*/
 
ORDER BY STIPOCURSO.NOME, SCURSO.NOME, PPESSOA.NOME,SPARCELA.PARCELA

Link to comment
Share on other sites


  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  482
  • Content Per Day:  0.21
  • Reputation:   135
  • Achievement Points:  3,213
  • Solved Content:  0
  • Days Won:  64
  • Status:  Offline
  • Age:  35
  • Device:  Android

Opa, 

Só cópia e cola... não usa o NOLOCK, pois o SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED é o nolock na session! 

/* faturamento - analitico */

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;

DECLARE @CODCOLIGADA INT = 0 
DECLARE @CODTIPOCURSO VARCHAR(500) = :CODTIPOCURSO
DECLARE @CODCURSO VARCHAR(500) = :CODCURSO

;WITH FILTRO_TIPOCURSO
AS
(
    SELECT 
        FS.ID, CONVERT(INT,FS.PALAVRA) AS 'TIPOCURSO'
    FROM [dbo].[fncSplitTexto](@CODTIPOCURSO, ',') FS

)
, FILTRO_CURSO
AS
(
    SELECT 
        FS.ID, CONVERT(INT,FS.PALAVRA) AS 'CURSO'
    FROM [dbo].[fncSplitTexto](@CODCURSO, ',') FS

)
SELECT DISTINCT
     SCURSO.CODCURSO
    ,SCURSO.NOME CURSO
    ,STIPOCURSO.CODTIPOCURSO
    ,STIPOCURSO.NOME TIPOCURSO
    ,YEAR(FLAN.DATAVENCIMENTO) ANO
    ,SCONTRATO.RA MATRICULA
    ,PPESSOA.NOME NOME
    ,SPARCELA.PARCELA PARCELA
    ,SPLETIVO.CODPERLET
    ,FLAN.VALORORIGINAL VALOR
    ,FLAN.DATAVENCIMENTO
FROM DBO.SCONTRATO  
JOIN DBO.SPARCELA  ON (SCONTRATO.CODCOLIGADA = SPARCELA.CODCOLIGADA  
                               AND SCONTRATO.RA = SPARCELA.RA 
                                 AND SCONTRATO.IDPERLET = SPARCELA.IDPERLET 
                               AND SCONTRATO.CODCONTRATO = SPARCELA.CODCONTRATO)
JOIN DBO.SLAN  ON (SCONTRATO.CODCOLIGADA = SLAN.CODCOLIGADA 
                           AND SPARCELA.IDPARCELA = SLAN.IDPARCELA)
JOIN DBO.FLAN  ON (SCONTRATO.CODCOLIGADA = FLAN.CODCOLIGADA 
                           AND SLAN.IDLAN = FLAN.IDLAN)
JOIN DBO.SALUNO  ON (SCONTRATO.CODCOLIGADA = SALUNO.CODCOLIGADA 
                             AND SCONTRATO.RA = SALUNO.RA)
JOIN DBO.PPESSOA  ON (SALUNO.CODPESSOA = PPESSOA.CODIGO)
JOIN DBO.STIPOCURSO  ON (SCONTRATO.CODCOLIGADA = STIPOCURSO.CODCOLIGADA  
                                 AND SCONTRATO.CODTIPOCURSO = STIPOCURSO.CODTIPOCURSO)
JOIN DBO.SHABILITACAOFILIAL  ON (SCONTRATO.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA  
                                         AND SCONTRATO.IDHABILITACAOFILIAL = SHABILITACAOFILIAL.IDHABILITACAOFILIAL)
JOIN DBO.SCURSO  ON (SCONTRATO.CODCOLIGADA = SCURSO.CODCOLIGADA  
                             AND SHABILITACAOFILIAL.CODTIPOCURSO = SCURSO.CODTIPOCURSO 
                             AND SHABILITACAOFILIAL.CODCURSO = SCURSO.CODCURSO)
JOIN DBO.SPLETIVO  ON (SCONTRATO.CODCOLIGADA = SPLETIVO.CODCOLIGADA 
                               AND SCONTRATO.IDPERLET = SPLETIVO.IDPERLET)
JOIN DBO.SHABILITACAOFILIALPL  ON (SCONTRATO.CODCOLIGADA = SHABILITACAOFILIALPL.CODCOLIGADA 
                                           AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SHABILITACAOFILIALPL.IDHABILITACAOFILIAL)
JOIN DBO.SSERVICO  ON (SCONTRATO.CODCOLIGADA = SSERVICO.CODCOLIGADA 
                               AND SPARCELA.CODSERVICO = SSERVICO.CODSERVICO)
JOIN DBO.SMATRICULA  ON (SCONTRATO.CODCOLIGADA = SMATRICULA.CODCOLIGADA  
                                 AND SCONTRATO.RA = SMATRICULA.RA 
                                 AND SCONTRATO.IDPERLET = SMATRICULA.IDPERLET 
                                 AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SMATRICULA.IDHABILITACAOFILIAL)
JOIN DBO.SSTATUS  ON (SMATRICULA.CODCOLIGADA = SSTATUS.CODCOLIGADA 
                              AND SMATRICULA.CODSTATUS = SSTATUS.CODSTATUS )
JOIN FILTRO_TIPOCURSO ON (FILTRO_TIPOCURSO.TIPOCURSO = SCURSO.CODTIPOCURSO)
JOIN FILTRO_CURSO ON (FILTRO_CURSO.CURSO  = SCURSO.CODCURSO)

 WHERE FLAN.STATUSLAN NOT IN (0,4) 
 /*AND year(FLAN.DATAVENCIMENTO) >= 2016*/ 
 AND YEAR(FLAN.MESDECOMPETENCIA) = 2023 /*:COMPETENCIAANO*/
 AND MONTH(FLAN.MESDECOMPETENCIA) = 4 /*:COMPETENCIAMES*/
 AND SSERVICO.CODSERVICO IN (1282) /*(:CODSERVICO)*/
 AND SSTATUS.CODSTATUS IN (14) /*(:CODSTATUS)*/
 
ORDER BY STIPOCURSO.NOME, SCURSO.NOME, PPESSOA.NOME,SPARCELA.PARCELA

Abraços

Link to comment
Share on other sites


  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  5
  • Content Per Day:  0.02
  • Reputation:   2
  • Achievement Points:  39
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  44
  • Device:  Windows

Fiz como recomendou e, somente as mensagens referente ao 'NOLOCK' e o uso do 'DECLARE' foram exibidas.

Ao executar o relatório pelo RM Reports nenhum registro foi exibido. Tem alguma ideia do que ainda pode ser?

Segue imagens das configurações setadas nos parâmetros que estão usando (TIPOCURSO e CURSO, os demais 'setei' valores fixos no WHERE). Inclusive testei configurado ambos como Tipo = Numero(inteiro de 16 bits) e o resultado foi o mesmo.

parCodCurso.jpg.b21981eaee5e095e4e064b13ba3cbfe3.jpg

 

parCodTipoCurso.jpg.22cd96c6776c44ee4689cb0e38e7a8a5.jpg

 


/* faturamento - analitico */

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;

DECLARE @CODCOLIGADA INT = 0 
DECLARE @CODTIPOCURSO VARCHAR(500) = '1' --:CODTIPOCURSO
DECLARE @CODCURSO VARCHAR(500) = '1,4' --:CODCURSO

;WITH FILTRO_TIPOCURSO
AS
(
    SELECT 
        FS.ID, CONVERT(INT,FS.PALAVRA) AS 'TIPOCURSO'
    FROM [dbo].[fncSplitTexto](@CODTIPOCURSO, ',') FS

)
, FILTRO_CURSO
AS
(
    SELECT 
        FS.ID, CONVERT(INT,FS.PALAVRA) AS 'CURSO'
    FROM [dbo].[fncSplitTexto](@CODCURSO, ',') FS

)
SELECT DISTINCT
     SCURSO.CODCURSO
    ,SCURSO.NOME CURSO
    ,STIPOCURSO.CODTIPOCURSO
    ,STIPOCURSO.NOME TIPOCURSO
    ,YEAR(FLAN.DATAVENCIMENTO) ANO
    ,SCONTRATO.RA MATRICULA
    ,PPESSOA.NOME NOME
    ,SPARCELA.PARCELA PARCELA
    ,SPLETIVO.CODPERLET
    ,FLAN.VALORORIGINAL VALOR
    ,FLAN.DATAVENCIMENTO
FROM DBO.SCONTRATO  
JOIN DBO.SPARCELA  ON (SCONTRATO.CODCOLIGADA = SPARCELA.CODCOLIGADA  
                               AND SCONTRATO.RA = SPARCELA.RA 
                                 AND SCONTRATO.IDPERLET = SPARCELA.IDPERLET 
                               AND SCONTRATO.CODCONTRATO = SPARCELA.CODCONTRATO)
JOIN DBO.SLAN  ON (SCONTRATO.CODCOLIGADA = SLAN.CODCOLIGADA 
                           AND SPARCELA.IDPARCELA = SLAN.IDPARCELA)
JOIN DBO.FLAN  ON (SCONTRATO.CODCOLIGADA = FLAN.CODCOLIGADA 
                           AND SLAN.IDLAN = FLAN.IDLAN)
JOIN DBO.SALUNO  ON (SCONTRATO.CODCOLIGADA = SALUNO.CODCOLIGADA 
                             AND SCONTRATO.RA = SALUNO.RA)
JOIN DBO.PPESSOA  ON (SALUNO.CODPESSOA = PPESSOA.CODIGO)
JOIN DBO.STIPOCURSO  ON (SCONTRATO.CODCOLIGADA = STIPOCURSO.CODCOLIGADA  
                                 AND SCONTRATO.CODTIPOCURSO = STIPOCURSO.CODTIPOCURSO)
JOIN DBO.SHABILITACAOFILIAL  ON (SCONTRATO.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA  
                                         AND SCONTRATO.IDHABILITACAOFILIAL = SHABILITACAOFILIAL.IDHABILITACAOFILIAL)
JOIN DBO.SCURSO  ON (SCONTRATO.CODCOLIGADA = SCURSO.CODCOLIGADA  
                             AND SHABILITACAOFILIAL.CODTIPOCURSO = SCURSO.CODTIPOCURSO 
                             AND SHABILITACAOFILIAL.CODCURSO = SCURSO.CODCURSO)
JOIN DBO.SPLETIVO  ON (SCONTRATO.CODCOLIGADA = SPLETIVO.CODCOLIGADA 
                               AND SCONTRATO.IDPERLET = SPLETIVO.IDPERLET)
JOIN DBO.SHABILITACAOFILIALPL  ON (SCONTRATO.CODCOLIGADA = SHABILITACAOFILIALPL.CODCOLIGADA 
                                           AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SHABILITACAOFILIALPL.IDHABILITACAOFILIAL)
JOIN DBO.SSERVICO  ON (SCONTRATO.CODCOLIGADA = SSERVICO.CODCOLIGADA 
                               AND SPARCELA.CODSERVICO = SSERVICO.CODSERVICO)
JOIN DBO.SMATRICULA  ON (SCONTRATO.CODCOLIGADA = SMATRICULA.CODCOLIGADA  
                                 AND SCONTRATO.RA = SMATRICULA.RA 
                                 AND SCONTRATO.IDPERLET = SMATRICULA.IDPERLET 
                                 AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SMATRICULA.IDHABILITACAOFILIAL)
JOIN DBO.SSTATUS  ON (SMATRICULA.CODCOLIGADA = SSTATUS.CODCOLIGADA 
                              AND SMATRICULA.CODSTATUS = SSTATUS.CODSTATUS )
JOIN FILTRO_TIPOCURSO ON (FILTRO_TIPOCURSO.TIPOCURSO = SCURSO.CODTIPOCURSO)
JOIN FILTRO_CURSO ON (FILTRO_CURSO.CURSO  = SCURSO.CODCURSO)

 WHERE FLAN.STATUSLAN NOT IN (0,4) 
 /*AND year(FLAN.DATAVENCIMENTO) >= 2016*/ 
 AND YEAR(FLAN.MESDECOMPETENCIA) = 2023 /*:COMPETENCIAANO*/
 AND MONTH(FLAN.MESDECOMPETENCIA) = 4 /*:COMPETENCIAMES*/
 AND SSERVICO.CODSERVICO IN (1282) /*(:CODSERVICO)*/
 AND SSTATUS.CODSTATUS IN (14) /*(:CODSTATUS)*/
 
ORDER BY STIPOCURSO.NOME, SCURSO.NOME, PPESSOA.NOME,SPARCELA.PARCELA

Link to comment
Share on other sites


  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  482
  • Content Per Day:  0.21
  • Reputation:   135
  • Achievement Points:  3,213
  • Solved Content:  0
  • Days Won:  64
  • Status:  Offline
  • Age:  35
  • Device:  Android

@lucas.guimaraes, bom dia!

Não temos uma base para testar seu relatório, portanto, caso queiras que eu lhe ajude, podemos realizar um remoto, meu contato no skype é luisgustavogomes@outlook.com 

Abraços

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • Solution

  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  5
  • Content Per Day:  0.02
  • Reputation:   2
  • Achievement Points:  39
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  44
  • Device:  Windows

Em 15/06/2023 at 09:56, luisgustavogomes disse:

@lucas.guimaraes, bom dia!

Não temos uma base para testar seu relatório, portanto, caso queiras que eu lhe ajude, podemos realizar um remoto, meu contato no skype é luisgustavogomes@outlook.com 

Abraços

Boa tarde @luisgustavogomes !

Consegui resolver meu problema com a seguinte linha na consulta...

AND REPLACE((',' + :TIPOCURSO + ','), ' ', '') LIKE ('%,' + CAST(SCURSO.CODTIPOCURSO AS VARCHAR)+ ',%') 

Com isso, consigo executar consultas SQL no RM Resports que usam parâmetros com múltiplos valores.

 

Atenciosamente,

Lucas Guimarães.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites


  • Topic Count:  4
  • Topics Per Day:  0.01
  • Content Count:  20
  • Content Per Day:  0.07
  • Reputation:   8
  • Achievement Points:  135
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline
  • Age:  32
  • Device:  Windows

Boa noite amigos,

Será que isso funcionária no Oracle também?

Fiquei curioso.

Link to comment
Share on other sites


  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  482
  • Content Per Day:  0.21
  • Reputation:   135
  • Achievement Points:  3,213
  • Solved Content:  0
  • Days Won:  64
  • Status:  Offline
  • Age:  35
  • Device:  Android

Boa noite, 

 

Boa pergunta! Quem tiver Oracle, se tiver como, por favor! 

Pelo Sqlserver utilizamos uma CTE para fazer o split.

 

Abraços 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.