Ir para conteúdo
Fórum Script Brasil

DiegoVix

Membros
  • Total de itens

    32
  • Registro em

  • Última visita

Sobre DiegoVix

DiegoVix's Achievements

0

Reputação

  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 ....
×
×
  • Criar Novo...