Usuário com melhor resposta
Fazer condição

Pergunta
-
Boa tarde
Estou tentando fazer um iff porem não tenho muito conhecimento e queria uma ajuda dos senhores:
Tenho um relatório porem quero colocar uma condição que se os campos (DATABAS = FERIASBAS) , ele não imprima este funcionario?
Existe como fazer isso no Reporting,
att
Marcelo
Marcelo
Respostas
-
Acho que ficou muito grande a questão acima, vou resumir:
Eu tenho a condição
AND
RF_DATABAS <>
'20091101'
Quando eu subistituo por
AND
RF_DATABAS <> RH_DATABAS, não funciona!!!! E o conteudo é exatamento 20091101, será que pode ser questão de relacionamento entre as tabelas?
Marcelo- Marcado como Resposta marcelltec terça-feira, 9 de agosto de 2011 13:30
Todas as Respostas
-
Marcel,
Voce esta consumindo isso diretamente de uma query que esta vindo de um dataset? Se sim, não seria mais performatico simplismente filtrar os dados pelo dataset e apenas exibi-los? falando no ponto de vista do RS, voce não trataria nada pelo relatorio, falando pelo DBEngine, um indice nessa tabela filtro te traria muita performance.
Fabrizzio A. Caputo
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com -
Boa noite
Obrigado por reponder Fabricio, sou novato com o Reporting, logo varias duvidas vão surgindo, vou postar meu relatório para voce entender a logica, e esta condição pode ser sim dentro da query. O que eu quero é filtrar uma condição para não sair no relatório.
SELECT SRA010.RA_MAT AS MATRICULA, SRA010.RA_NOME AS FUNCIONARIO, SR6010.R6_TURNO AS TURNO, SR6010.R6_DESC AS DESCTURNO,
SRA010.RA_CC AS CENTROCUSTO, CTT010.CTT_DESC01 AS DESCCC, SRJ010.RJ_DESC AS FUNCAO, SRF010.RF_DFERAAT AS DIASFERIAS,
SRA010.RA_ADMISSA AS DTAADMISSAO, SRF010.RF_DATABAS AS DTABASEFERIAS, SRF010.RF_DATAINI, SRF010.RF_DATINI2, SRA010.RA_FILIAL,
SRH010.D_E_L_E_T_ AS Expr2
FROM SRA010 INNER JOIN
SR6010 ON SRA010.RA_TNOTRAB = SR6010.R6_TURNO INNER JOIN
CTT010 ON SRA010.RA_CC = CTT010.CTT_CUSTO INNER JOIN
SRJ010 ON SRA010.RA_CODFUNC = SRJ010.RJ_FUNCAO INNER JOIN
SRF010 ON SRA010.RA_MAT = SRF010.RF_MAT INNER JOIN
SRH010 ON SRF010.RF_DATINI2 = SRH010.RH_DATAFIM
WHERE (SRA010.RA_DEMISSA = ' ') AND (SRA010.D_E_L_E_T_ <> '*') AND (SR6010.D_E_L_E_T_ <> '*') AND (CTT010.D_E_L_E_T_ <> '*') AND
(SRJ010.D_E_L_E_T_ <> '*') AND (SRF010.D_E_L_E_T_ <> '*') AND (SR6010.R6_TURNO >= @TURNOINI) AND (SR6010.R6_TURNO <= @TURNOFIM)
AND (SRA010.RA_SITFOLH = ' ') AND (CTT010.CTT_CUSTO >= @CCUSTO) AND (CTT010.CTT_CUSTO <= @CCUSTO1) AND (SRH010.D_E_L_E_T_ <> '*')" OS NESTE RELATÓRIO TEM DUAS TABELAS, RF_DATABAS e RH_DATABAS , caso elas tenha o mesmo conteudo, o dado não sairá no relatório"
Esta é a condição que não estou sabendo colocar
ORDER BY MATRICULA
Marcelo -
Acho que ficou muito grande a questão acima, vou resumir:
Eu tenho a condição
AND
RF_DATABAS <>
'20091101'
Quando eu subistituo por
AND
RF_DATABAS <> RH_DATABAS, não funciona!!!! E o conteudo é exatamento 20091101, será que pode ser questão de relacionamento entre as tabelas?
Marcelo- Marcado como Resposta marcelltec terça-feira, 9 de agosto de 2011 13:30
-
RF_DATABAS se liga a que tabela da sua clausula from?
Supondo que seja com a tabela SRA010.
INNER JOIN RF_DATABAS ON RF_DATABAS.ATRIBUTO = SRA010.ATRIBUTO
LEFT JOIN RH_DATABAS ON RF_DATABAS.ATRIBUTO = RH_DATABAS.ATRIBUTO
WHERE RH_DATABAS.ATRIBUTO IS NULL
ISSO TRAS TODOS AS LINHAS QUE ESTAO EM RF_DATABAS E NAO ESTAO EM RH_DATABAS.
Na verdade é uma questao de SQL e nao RS.