Ir para conteúdo
Fórum Script Brasil

DiegoVix

Membros
  • Total de itens

    32
  • Registro em

  • Última visita

Tudo que DiegoVix postou

  1. RESOLVIDO SELECT * FROM RH.T01102_AFASTAMENTO AF INNER JOIN RH.T01001_SERVIDOR S ON S.T01001_I_MATRICULA = AF.T01001_I_MATRICULA WHERE T01095_I_CDTPAFAST IN (1) AND AF.T01001_I_MATRICULA IN (SELECT T01001_I_MATRICULA FROM RH.T01102_AFASTAMENTO AF2 WHERE AF2.T01095_I_CDTPAFAST IN (2) AND ((AF.T01102_D_DTINICIO BETWEEN AF2.T01102_D_DTINICIO AND AF2.T01102_D_DTFIM) OR (AF.T01102_D_DTINICIO < AF2.T01102_D_DTINICIO AND (AF.T01102_D_DTFIM >= AF2.T01102_D_DTINICIO AND AF.T01102_D_DTFIM <= AF2.T01102_D_DTFIM))) OR AF.T01102_D_DTINICIO < AF2.T01102_D_DTINICIO AND AF.T01102_D_DTFIM IS NULL)
  2. pois é... eu fiz isso... so não sei de que forma irei tratar essa comparação... pois não é referente somente uma data, essa comparação é referente a um periodo inicial e final... você entende!!!!! Sera que seria no caso criar um CASE???? SELECT* FROM RH.T01102_AFASTAMENTO AF INNER JOIN RH.T01001_SERVIDOR S ON S.T01001_I_MATRICULA = AF.T01001_I_MATRICULA WHERE T01095_I_CDTPAFAST IN (1,2)
  3. Boa tarde!!! Eu to precisando fazer a seguinte consulta: Tabela afastamentos T01001_i_matricula - (chave estrangeira - tabela servidores) T01102_i_cdafastam - (chave primaria) T01095_i_cdtpafast - (chave estrangeira da tabela tipos de afastamentos) T01102_d_dtinicio - (inicio do afastamento) T01102_d_dtfim - (fim do afastamento) Eu tenho que tirar afastamento que estao no mesmo periodo... Por exemplo: joao teve um periodo de ferias do dia 01-01-2010 ate 31-01-2010... E nesse mesmo periodo eu tenho um afastamento para tratamento de saude dele que vai do dia 05-01-2010 até 10-01-2010 Eu to precisando saber quais são as matriculas que estao com esse tipo de problema... Pois eu não posso ter nois afastamentos no mesmo periodo!!!! Entende Eu preciso de uma consulta onde coloco os 2 tipos de afastamento que não quero que coicidem no mesmo periodo!!!
  4. Bom dia Fulvio!! Questão 100% resolvida!!!... Obrigado!!
  5. é porque e o seguinte Fulvio, eu tenho uma tela de atestado medico no meu banco... nessa tela registra a data que o servidor fico de atestado do dia ''DTINICIO'' e ''DTFIM''. Ai eu gostaria de saber quantos dias o servidor ficou parado... neste caso ai se ele ficou parado do dia 1 ao dia 2, ele fico 2 dias parados... entendeu????
  6. Boa tarde!!!! Gostaria de saber como funciona pra mim consultar os dias entre duas datas de meu banco de dados!!!!! Exemplo Data1 Data2 01/01/2010 02/01/2010 Resultado = 2
  7. Bom dia Fulvio, Deu certo... fui pela data!!!!! Muito Obrigado ATT Diego
  8. PO FULVIO... É ISSO MESMO... OU MELHOR... É QUASE RSSS... É porque TIPO ASSIM, EU QUERO QUE A CONSULTA SO ME TRAGA AS MATRICULAS QUE ESTAO COM DIFERENÇA ENTRE A ULTIMA SITUAÇÃO CADASTRADA EXE: TABELA SITUAÇÃO T01001_I_MATRICULA T01015_I_CDREF T01025_I_CDPADRAO --------------------------------------- --------------------------------------- --------------------------------------- 157945 NULL NULL 157945 6 91 157945 7 91 157945 8 91 157945 9 91 157945 9 97 157945 NULL NULL 157945 NULL NULL 157945 8 96 157945 8 96 (ESSE REG CONFERE COM A TABELA SERVIDOR) TABELA SERVIDOR T01001_I_MATRICULA T01015_I_CDREF T01025_I_CDPADRAO --------------------------------------- --------------------------------------- --------------------------------------- 157945 8 96 SCRIPT CRIADO T01001_I_MATRICULA T01025_I_CDPADRAO --------------------------------------- --------------------------------------- --------------------------------------- 157945 9 97 VIU O CASO AI... ELE TA PEGANDO A ULTIMA SITUAÇÃO QUE FOI CADASTRADA ERRADA... MAS DEPOIS DELA VIERAM OUTRAS... EU QUERO QUE ELE CONFERE SOMENTE O ULTIMO REGISTRO LANÇADO NA TABELA SITUAÇÃO??? E MEIO COMPLICADO ACHO DE EU TE EXPLICAR...RSSS... MAS você CONSEGUIU ENTENDER???
  9. Boa tarde!!!! Tabela SITUACAO Matricula Referencia padrão --------------------------------------- --------------------------------------- --------------------------------------- 167 NULL NULL 167 NULL NULL 167 19 21 167 21 21 Tabela SERVIDOR Matricula Referencia padrão --------------------------------------- --------------------------------------- --------------------------------------- 167 21 21 É O SEGUINTE, EU TENHO ESSAS DUAS TABELAS NO BANCO QUE FUNCIONA DA SEGUINTE FORMA, EU TENHO UM SERVIDOR, E PRO SERVIDOR EU TENHO UMA SITUAÇÃO... CONFORME VAI PASSANDO O TEMPO DE TRABALHO DELE, EU VO ADCIONANDO UMA SITUAÇÃO NOVA... E A SITUAÇÃO QUE ELE SE ENCONTRAVA (ANTIGA) FICA ARMAZENADA. QUANDO EU INCLUO UMA NOVA SITUAÇÃO A ESSE SERVIDOR... AUTOMATICAMENTE... ESSA SITUAÇÃO MUDA TAMBEM NA TELA SERVIDOR... SENDO QUE A SITUAÇÃO QUE É A ULTIMA CADASTRADA NA TABELA SITUAÇÃO, É A QUE MOSTRA ATUAL NA TABELA SERVIDOR. EU QUERO FAZER UM SELECT QUE ME TRAGA TODAS MATRICULAS QUE POSSUI O ULTIMO REGISTRO DA TABELA SITUAÇÃO, DIFERENTE DA TABELA SERVIDOR EX COM ERRO: Matricula Referencia padrão --------------------------------------- --------------------------------------- --------------------------------------- 167 NULL NULL 167 NULL NULL 167 19 21 167 21 21 Tabela SERVIDOR Matricula Referencia padrão --------------------------------------- --------------------------------------- --------------------------------------- 167 19 21
  10. Bom dia Fulvio, problema resolvido... o problema que eu tava dando uma cabeçada... ai vai o codigo SELECT U.T01004_S_SIGLA AS Secretaria ,COUNT (LTS.T01135_I_CDLTS) AS QUANTIDADE_LTS ,COUNT ( DISTINCT (S.T01001_I_MATRICULA) ) AS QT_MATRICULAS FROM RH.T01135_LTS LTS LEFT JOIN RH.T01101_LAUDO LAUDO ON LAUDO.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND LAUDO.T01135_I_ANO = LTS.T01135_I_ANO AND LAUDO.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND LAUDO.T01135_I_TPDOC = LTS.T01135_I_TPDOC LEFT JOIN RH.T01260_REVISAOAPO APOS ON APOS.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND APOS.T01135_I_ANO = LTS.T01135_I_ANO AND APOS.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND APOS.T01135_I_TPDOC = LTS.T01135_I_TPDOC INNER JOIN RH.T01001_SERVIDOR S ON S.T01002_I_CDENT = LTS.T01002_I_CDENT AND S.T01001_I_MATRICULA = LTS.T01001_I_MATRICULA INNER JOIN RH.T01000_PESFISICA P ON P.T01000_I_CDPESFIS = S.T01000_I_CDPESFIS INNER JOIN RH.T01004_UNIDFUNC U ON U.T01002_I_CDENT = S.T01002_I_CDENT AND U.T01004_I_CDUNIDFUN = S.T01001_I_CDORGLOT AND U.T01004_I_VERSAO = S.T01001_I_VORGLOT LEFT JOIN RH.T01265_FUNCPERICIA PERITO ON PERITO.T01265_I_CDFUNCIONARIO = LTS.T01135_I_CDMEDPERITO LEFT JOIN RH.T01001_SERVIDOR SP ON SP.T01002_I_CDENT = PERITO.T01002_I_CDENT AND SP.T01001_I_MATRICULA = PERITO.T01001_I_MATRICULA LEFT JOIN RH.T01000_PESFISICA PP ON PP.T01000_I_CDPESFIS = SP.T01000_I_CDPESFIS GROUP BY U.T01004_S_SIGLA ORDER BY U.T01004_S_SIGLA tudo resolvido meu camarada... brigadao e até a proxima!!!!
  11. bom dia Fulvio!!! intão... eu fui já tinha testado assim tambem e ele me trouxe esse resultado SECRETARIA------ QT DE LTS--------QTD DE MATRICULAS CGM ---------- -- 1------------------------------1 CGM ---------- -- 2---------- -- 2 CGM---------- -- 1---------- -- 1 CGM ---------- -- 1---------- -- 1 GABPREF ---------- -- 1---------- -- 1 GABPREF---------- -- 1---------- -- 1 GABPREF---------- -- 1---------- -- 1 GABPREF ---------- -- 1---------- -- 1 GABPREF ---------- -- 1---------- -- 1 ele tras certinho rapaz... so fica faltando ele acumular entendeu???
  12. pois é fulvio... eu lancei deste jeito ai... e não deu o resultado esperado... e fui modificando e o mais proximo que cheguei de meu objetivo foi esse codigo SELECT U.T01004_S_SIGLA AS Secretaria ,COUNT (*) AS QUANTIDADE_LTS ,(SELECT COUNT (DISTINCT T01001_I_MATRICULA )as MATRICULAS FROM RH.T01135_LTS)AS MATRICULAS FROM RH.T01135_LTS LTS LEFT JOIN RH.T01101_LAUDO LAUDO ON LAUDO.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND LAUDO.T01135_I_ANO = LTS.T01135_I_ANO AND LAUDO.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND LAUDO.T01135_I_TPDOC = LTS.T01135_I_TPDOC LEFT JOIN RH.T01260_REVISAOAPO APOS ON APOS.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND APOS.T01135_I_ANO = LTS.T01135_I_ANO AND APOS.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND APOS.T01135_I_TPDOC = LTS.T01135_I_TPDOC INNER JOIN RH.T01001_SERVIDOR S ON S.T01002_I_CDENT = LTS.T01002_I_CDENT AND S.T01001_I_MATRICULA = LTS.T01001_I_MATRICULA INNER JOIN RH.T01000_PESFISICA P ON P.T01000_I_CDPESFIS = S.T01000_I_CDPESFIS INNER JOIN RH.T01004_UNIDFUNC U ON U.T01002_I_CDENT = S.T01002_I_CDENT AND U.T01004_I_CDUNIDFUN = S.T01001_I_CDORGLOT AND U.T01004_I_VERSAO = S.T01001_I_VORGLOT LEFT JOIN RH.T01265_FUNCPERICIA PERITO ON PERITO.T01265_I_CDFUNCIONARIO = LTS.T01135_I_CDMEDPERITO LEFT JOIN RH.T01001_SERVIDOR SP ON SP.T01002_I_CDENT = PERITO.T01002_I_CDENT AND SP.T01001_I_MATRICULA = PERITO.T01001_I_MATRICULA LEFT JOIN RH.T01000_PESFISICA PP ON PP.T01000_I_CDPESFIS = SP.T01000_I_CDPESFIS GROUP BY U.T01004_S_SIGLA ORDER BY U.T01004_S_SIGLA e me deu esse resultado SECRETARIA------ QT DE LTS--------QTD DE MATRICULAS CGM---------------------5-----------------3349 GABPREF ----------------5----------------3349 PGM----------------------7---------------3349 SECOM-------------------8---------------3349 SECOP--------------------7-------------- 3349 DA UMA OLHADINHA VALEU OBRIGADO
  13. POIS É... ESSE QUE você ME PASSO FOI BOMMM... ERA ESSE RESULTADO QUE EU QUERIA CHEGAR... MAS ESTOU PRECISANDO DE UMA OUTRA SITUAÇÃO DENTRO DA CONSULTA... QUE É TRAZER O TOTAL DE MATRICULA POR SECRETARIA EU MO0NTEI ESTE SCRIPT SELECT U.T01004_S_SIGLA AS Secretaria ,COUNT (*) AS QUANTIDADE_LTS ,S.T01001_I_MATRICULA AS MATRICULA ,(SELECT COUNT (DISTINCT T01001_I_MATRICULA )as metr FROM RH.T01135_LTS) FROM RH.T01135_LTS LTS LEFT JOIN RH.T01101_LAUDO LAUDO ON LAUDO.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND LAUDO.T01135_I_ANO = LTS.T01135_I_ANO AND LAUDO.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND LAUDO.T01135_I_TPDOC = LTS.T01135_I_TPDOC LEFT JOIN RH.T01260_REVISAOAPO APOS ON APOS.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND APOS.T01135_I_ANO = LTS.T01135_I_ANO AND APOS.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND APOS.T01135_I_TPDOC = LTS.T01135_I_TPDOC INNER JOIN RH.T01001_SERVIDOR S ON S.T01002_I_CDENT = LTS.T01002_I_CDENT AND S.T01001_I_MATRICULA = LTS.T01001_I_MATRICULA INNER JOIN RH.T01000_PESFISICA P ON P.T01000_I_CDPESFIS = S.T01000_I_CDPESFIS INNER JOIN RH.T01004_UNIDFUNC U ON U.T01002_I_CDENT = S.T01002_I_CDENT AND U.T01004_I_CDUNIDFUN = S.T01001_I_CDORGLOT AND U.T01004_I_VERSAO = S.T01001_I_VORGLOT LEFT JOIN RH.T01265_FUNCPERICIA PERITO ON PERITO.T01265_I_CDFUNCIONARIO = LTS.T01135_I_CDMEDPERITO LEFT JOIN RH.T01001_SERVIDOR SP ON SP.T01002_I_CDENT = PERITO.T01002_I_CDENT AND SP.T01001_I_MATRICULA = PERITO.T01001_I_MATRICULA LEFT JOIN RH.T01000_PESFISICA PP ON PP.T01000_I_CDPESFIS = SP.T01000_I_CDPESFIS GROUP BY U.T01004_S_SIGLA ,S.T01001_I_MATRICULA ORDER BY U.T01004_S_SIGLA E ESE TRAS SECR LTS MATRIC QUANTIDA CGM- 1- 132160- 3349- CGM- 2- 525032- 3349- CGM- 1- 529086- 3349- CGM- 1- 529642- 3349- GABPREF- 1- 123919- 3349- GABPREF- 1- 480385- 3349- GABPREF- 1- 560704- 3349- GABPREF- 1- 585013- 3349- GABPREF- 1- 590244- 3349- PGM- 1- 63231- 3349- PGM- 1- 214965- 3349- E EU QUERIA QUE ELE TROUXESSE ASSIM SECR LTS MATRIC CGM- 5- 4- GABPREF- 5 - 5- PGM- 2 - 2- ENTENDEU????
  14. acho que me equivoquei em algo Fulvio... por isso talvez não conseguir resolver essa questao... vamos lar eu tenho uma tabela LTS (listagem de tratamento de saude)... CDLTS ANO SEQUENCIA TPDOC CDDEP CDPESFIS CDENT MATRICULA esses são os campos, eu gostaria de saber o total de matricula que foi cadastrado nas LTS, tipo... '' vale lembrar que eu posso ter a mesma matricula vinculada a diversas LTS'' e quando eu tiver por exemplo matricula 100 = 3 LTS ... eu quero que essa some apenas um... o count que eu fiz foi assim select T01001_I_MATRICULA, COUNT(*) from rh.T01135_LTS GROUP BY T01001_I_MATRICULA retorna isso Matricula QT 73547- 1 116890- 1 117390- 2 174173- 3 485926- 1 e eu gostaria que retornasse somente assim Matricula = 5 ok
  15. Bom Dia!!! é o seguinte, minha listagem esta assim Secretaria MATRICULA NOME QT de LAUDOS CGM 132160 DEUSIMAR LEITE 1 CGM 525032 LUIZ FELIPE DE SOUZA 2 CGM 529086 ULISSES DE MATTOS 1 CGM 529642 ELAINE ALVARENGA OLIVEIRA 1 QUANDO EU RODO ESSE SCRIPT SELECT U.T01004_S_SIGLA AS Secretaria ,COUNT (*) -- ROW_NUMBER() OVER( PARTITION BY U.T01004_S_SIGLA ORDER BY S.T01001_I_MATRICULA DESC) SEQ --,S.T01001_I_MATRICULA, COUNT (*) FROM RH.T01135_LTS LTS LEFT JOIN RH.T01101_LAUDO LAUDO ON LAUDO.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND LAUDO.T01135_I_ANO = LTS.T01135_I_ANO AND LAUDO.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND LAUDO.T01135_I_TPDOC = LTS.T01135_I_TPDOC LEFT JOIN RH.T01260_REVISAOAPO APOS ON APOS.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND APOS.T01135_I_ANO = LTS.T01135_I_ANO AND APOS.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND APOS.T01135_I_TPDOC = LTS.T01135_I_TPDOC INNER JOIN RH.T01001_SERVIDOR S ON S.T01002_I_CDENT = LTS.T01002_I_CDENT AND S.T01001_I_MATRICULA = LTS.T01001_I_MATRICULA INNER JOIN RH.T01000_PESFISICA P ON P.T01000_I_CDPESFIS = S.T01000_I_CDPESFIS INNER JOIN RH.T01004_UNIDFUNC U ON U.T01002_I_CDENT = S.T01002_I_CDENT AND U.T01004_I_CDUNIDFUN = S.T01001_I_CDORGLOT AND U.T01004_I_VERSAO = S.T01001_I_VORGLOT LEFT JOIN RH.T01265_FUNCPERICIA PERITO ON PERITO.T01265_I_CDFUNCIONARIO = LTS.T01135_I_CDMEDPERITO LEFT JOIN RH.T01001_SERVIDOR SP ON SP.T01002_I_CDENT = PERITO.T01002_I_CDENT AND SP.T01001_I_MATRICULA = PERITO.T01001_I_MATRICULA LEFT JOIN RH.T01000_PESFISICA PP ON PP.T01000_I_CDPESFIS = SP.T01000_I_CDPESFIS GROUP BY U.T01004_S_SIGLA --,S.T01001_I_MATRICULA ORDER BY U.T01004_S_SIGLA ELE TRAZ ESSA INFORMAÇÃO SECRETARIA QT LAUDOS CGM 5 EU GOSTARIA QUE ELE TROUXESSE TAMBEM A QUANTIDADE DE SERVIDORES FICANDO ASSIM MINHA LISTAGEM SECRETARIA QT LAUDOS QT SERVIDORES CGM 5 4 ....
  16. Bom Dia Fulvio, nem preciso criar a temporaria... eu so lancei o group by que faltava e deu certo!!!!!! obrigado já esta resolvido!!!!!
  17. Bom dia!!!! estou precisando criar counts, um para a quantidade de laudos por servidores, e uma quantidade de laudos por secretarias eu queria saber o que devo acrecentar ou retirar deste codigo SELECT U.T01004_S_SIGLA AS Secretaria , S.T01001_I_MATRICULA AS Matrícula , P.T01000_S_NOME AS Nome , LTS.T01135_D_DTEXAME AS Exame , RH.fnDadosCarreiraCargo(S.T01002_I_CDENT, S.T01036_I_CDHIERARQ, 0) AS Cargo , LTRIM(RTRIM(T01135_S_CID1)) AS CID , ISNULL(DATEDIFF(DAY, LAUDO.T01101_D_DTININCAP, LAUDO.T01101_D_DTFIMINCAP) + 1, 0) AS [Dias] , PP.T01000_S_NOME AS Perito , CASE ISNULL(LAUDO.T01101_I_INDACIDTRAB, 0) WHEN 0 THEN '-' WHEN 1 THEN 'N' WHEN 2 THEN 'S' END AS AT , CASE ISNULL(LAUDO.T01101_I_INDDOENTRAB, 0) WHEN 0 THEN '-' WHEN 1 THEN 'N' WHEN 2 THEN 'S' END AS DO , ISNULL(LISTA_TPLAUDO.T01071_S_VALORSTR, LISTA_TPLAUDO_APOS.T01071_S_VALORSTR) AS Laudo , LISTA_TPCONCLUSAO.T01071_S_VALORSTR AS Conclusão , CAST(DATEDIFF("D",P.T01000_D_DTNASC,getdate())/365.25 AS INT) AS Idade FROM RH.T01135_LTS LTS LEFT JOIN RH.T01101_LAUDO LAUDO ON LAUDO.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND LAUDO.T01135_I_ANO = LTS.T01135_I_ANO AND LAUDO.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND LAUDO.T01135_I_TPDOC = LTS.T01135_I_TPDOC LEFT JOIN RH.T01260_REVISAOAPO APOS ON APOS.T01135_I_CDLTS = LTS.T01135_I_CDLTS AND APOS.T01135_I_ANO = LTS.T01135_I_ANO AND APOS.T01135_I_SEQUENCIA = LTS.T01135_I_SEQUENCIA AND APOS.T01135_I_TPDOC = LTS.T01135_I_TPDOC INNER JOIN RH.T01001_SERVIDOR S ON S.T01002_I_CDENT = LTS.T01002_I_CDENT AND S.T01001_I_MATRICULA = LTS.T01001_I_MATRICULA INNER JOIN RH.T01000_PESFISICA P ON P.T01000_I_CDPESFIS = S.T01000_I_CDPESFIS INNER JOIN RH.T01004_UNIDFUNC U ON U.T01002_I_CDENT = S.T01002_I_CDENT AND U.T01004_I_CDUNIDFUN = S.T01001_I_CDORGLOT AND U.T01004_I_VERSAO = S.T01001_I_VORGLOT LEFT JOIN RH.T01265_FUNCPERICIA PERITO ON PERITO.T01265_I_CDFUNCIONARIO = LTS.T01135_I_CDMEDPERITO LEFT JOIN RH.T01001_SERVIDOR SP ON SP.T01002_I_CDENT = PERITO.T01002_I_CDENT AND SP.T01001_I_MATRICULA = PERITO.T01001_I_MATRICULA LEFT JOIN RH.T01000_PESFISICA PP ON PP.T01000_I_CDPESFIS = SP.T01000_I_CDPESFIS LEFT JOIN RH.T01071_ITEMLISTA LISTA_TPLAUDO ON LISTA_TPLAUDO.T01071_I_CDITEM = LAUDO.T01101_I_TPLAUDO LEFT JOIN RH.T01071_ITEMLISTA LISTA_TPLAUDO_APOS ON LISTA_TPLAUDO_APOS.T01071_I_CDITEM = APOS.T01260_I_TPLAUDO LEFT JOIN RH.T01071_ITEMLISTA LISTA_TPCONCLUSAO ON LISTA_TPCONCLUSAO.T01071_I_CDITEM = LTS.T01135_I_TPCONCLUSAO WHERE LTS.T01135_I_TPDOC = 453 AND LTS.T01135_D_DTEXAME >= @DataIni AND LTS.T01135_D_DTEXAME <= @DataFim AND (@TipoLaudo IS NULL OR LAUDO.T01101_I_TPLAUDO = @TipoLaudo OR APOS.T01260_I_TPLAUDO = @TipoLaudo) AND (@TipoConclusao IS NULL OR LTS.T01135_I_TPCONCLUSAO = @TipoConclusao) AND (@MatriculaPerito IS NULL OR @MatriculaPerito = PERITO.T01001_I_MATRICULA) AND (@MatriculaServidor IS NULL OR @MatriculaServidor = S.T01001_I_MATRICULA) AND (@IndAcidTrab IS NULL OR LAUDO.T01101_I_INDACIDTRAB = 2) AND (@IndDoenOcup IS NULL OR LAUDO.T01101_I_INDDOENTRAB = 2) AND (@Cid IS NULL OR LEFT(LTS.T01135_S_CID1, LEN(@Cid)) LIKE @Cid) AND (@NomeServidor IS NULL OR P.T01000_S_NOME LIKE '%' + @NomeServidor + '%') ORDER BY LTS.T01135_D_DTEXAME
  18. Esse é o script... deu certo... !!!! Maravilha!!!! Brigado mais uma vez Fulvio!!!! Este ta resolvido!!!!
  19. Dexa eu te explicar melhor pois eu fui muito superficial... rsss... eu quero tirar todos os servidores que possuem o mesm curso cadastrado mais de uma vez... por exemplo ''eu tenho uma pessoa cadastrada no sistema'' nome: diego de souza cursos: 1001 - pedagogia 1002 - pedagogia nome: maria da silva cursos: 3500 - informatica 3501 - ingles o meu sistema cadastra o curso dentro do cadastro de pessoa... sendo que não posso consultar cursos que foram cadastrados anteriormente... ele abre um novo cadastro a medida que eu estou incluindo uma nova pessoa... ai teve uns usuarios que quando cadastraram esses cursos... erraram na data de inicio e fim do curso, ai foram e incluiram o curso novamente com a data certa... ai eu preciso listar todas as pessoas que tem o curso repetido dentro do seu cadastro como no exemplo ai acima do diego de souza... pra você entender um pouquinho melhor meu banco eu deixei no primeiro post. o exemplo da telas!!!!!
  20. Eu conseguir achar todos aqueles que tem mais de um curso cadastrados... mas ainda não filtro aquele processo de vim somente os cursos com mesmo nome!!!!! .... eu usei esse codido SELECT *FROM PES, SERV , CURS WHERE PES.CODPES = SERV.CODPES AND SITUACAOPES = 1 AND PES.CODPES = CURS.CODPES AND CURS.NOMECURS IN (select NOMECURS from CURS group by NOMECURS having count (NOMECURS)>1) [code] ESSE AI FUNCIONOU PARA ACHAR OS SERVIDORES QUE ESTAO COM MAIS DE 1 CURSO CADASTRADOS!!!!
  21. E ai Fulvio, beleza?? rapaz... acho que não entendi esse alias... mas perdao... e porque so meio leigo... rs meu problema e o seguinte... seu script me fez chega numa conclusao que eu não sabia que funcionava assim... e porque eu so novo nesta empresa... e eu não aprendi ainda todo o banco de dados.... mas vamos la. ex: '' 130 diego souza rua luiz avidos ...'' '' 92 pedagogia 01/01/2009 13/12/2009 ... '' '' 93 pedagogia 01/01/2010 13/12/2009 ... '' Ai tipo assim... o usuario conseguia incluir o mesmo curso mais de uma vez... pois ele não testava na hora de gravar o campo nome... so testava o campo periodo de inicio e termino de curso... ai eles cadastraram mais de uma pessoa com o mesmo curso... porem de data de inicio e fim diferente... eu preciso fazer um levantamento... so que quando cadastro uma pessoa, eu tenho que adcionar essa pessoa na tabela servidor, pois é na tabela servidor que indico se essa pessoa esta ativo (trabalhando) ou não... e o codigo dele no sistema e gerado nesse cadastro de servidor tambem!!!!!! Conseguiu entender??? eu to tendo umas dificuldades pois eu não trabalhava com sql... tinha uma noção...!!! abraço!!!
  22. Bom Tarde!!! estou precisando selecionar os servidores que estao ativos, que tem mais de um curso cadastrado, e que este curso SEJE duplicado Tabela PESFISICA.P COD (PK) NOME ENDERECO TABELA SERVIDOR .S MATRICULA SITUAÇÃO COD (FK) CARGO TABELA CURSOPFEXT.C CODCURSO(PK) NOME CURSO CODPESFIS(FK SELECT * FROM PESFISICA.P, SERVIDOR.S WHERE PESFISICA.P . COD.P = SERVIDOR.S . COD.P and SITUACAO = 1 (SE ELE ESTA ATIVO OU não) and PESFISICA.P . COD.P in (select CURSOPFEXT.C . COD.P from CURSOPFEXT.C)
  23. CARACA... DEU CERTO FULVIO... VALEU MESMO!!! ENQUANTO A SUA DICA... A PARTIR DE AGORA IREI FAZER DESTE JEITO QUE você FALOU AI!!!!!!! ABRAÇO
  24. Boa tarde Amigos, Segue meu problema Tabela RH.T01000_PESFISICA CODPESFIS (PK) NOME ENDERECO TABELA RH.T01001_SERVIDOR MATRICULA SITUAÇÃO CODPESFIS (FK) CARGO TABELA RH.T01583_CURSOPFEXT CODCURSO(PK) NOME CURSO CODPESFIS(FK) VAMOS LA GENTE, EU PRECISO DE UMA CONSULTA QUE TRAGA TODOS OS NOMES, MATRICULAS E CARGOS DOS SERVIDORES QUE ESTAO COM A SITUAÇÃO ATIVA NO SISTEMA E QUE não TENHAM NENHUM CURSO CADASTRADO NO BANCO. EU CHEGUEI AQUI... SO QUE não ESTA CERTO SELECT * FROM RH.T01000_PESFISICA INNER JOIN RH.T01001_SERVIDOR ON RH.T01000_PESFISICA.T01000_I_CDPESFIS = RH.T01001_SERVIDOR. T01000_I_CDPESFIS INNER JOIN RH.T01583_CURSOPFEXT ON RH.T01583_CURSOPFEXT.T01583_I_CDCURSOPFEXT = RH.T01000_PESFISICA.T01000_I_CDPESFIS WHERE T01001_I_STATUS = 1 and T01027_I_CDQUADRO = 7 STATUS É SE ELE ESTA ATIVO(1) E (0) É INATIVO QUADRO É O CARGO alguém SUGERE ALGO??? ABRAÇO
  25. ele ta dando esse erro aki não hora que lanco esse codigo insert into TMP_Nomes (codnome, nome) SELECT T01000_S_NOME,T01000_I_CDPESFIS FROM RH.T01000_PESFISICA ''Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'GURHU' to data type int.'' Ghuru e o nome de meu banco eu não achei ainda esse motivo ai... já achei... era so inverter ali no select o T01000_S_NOME pelo T01000_I_CDPESFIS e deu certo... muito obrigado Fulvio... minha questao esta 100% resolvido desta vez Grande Abraço e até a proxima!!! Obrigado!!!!
×
×
  • Criar Novo...