Alguns exemplos:
Alguns exemplos:
Alguns exemplos:
---tratativas exemplos:
--> Alterar ponto por vírgula:
Entarda: REPLACE(PFUNC.SALARIO, '.', ',') AS 'REMUNERACAO_MENSAL',
Saída: 8115,55
--> Entrada:
CASE
WHEN PFUNCAO.NOME = 'PROFESSOR DE ENSINO SUPERIOR I' THEN CAST(CONVERT(decimal(15, 10), (CEILING(jornadamensal / 60)) / 4.5) AS numeric(15, 2))
WHEN PFUNCAO.NOME = 'PROFESSOR DE ENSINO SUPERIOR II' THEN CAST(CONVERT(decimal(15, 10), (CEILING(jornadamensal / 60)) / 4.5) AS numeric(15, 2))
WHEN PFUNCAO.NOME = 'PROFESSOR DE ENSINO SUPERIOR III' THEN CAST(CONVERT(decimal(15, 10), (CEILING(jornadamensal / 60)) / 4.5) AS numeric(15, 2))
ELSE CAST(CONVERT(decimal(15, 10), (jornadamensal / 60)) / 5 AS numeric(15, 2))
END AS CARGA_HORARIA,
Saída: 40.00
--> FORMAT(PFUNC.DATAADMISSAO, 'dd/MM/yyyy') AS DT_ADMISSAO,
Saída: 09/05/2022
CONVERT(DATE,DATAADMISSAO) as DATAADMISSAO
--> Entrada:
FORMAT(CASE
WHEN PFCOMPL.c011 <> 'NULL' THEN PFUNC.SALARIO * 0.40 + PFUNC.SALARIO
ELSE PFUNC.SALARIO
END, 'C', 'pt-br') AS 'SALARIO_C_GRATIFI',
Saída: R$8.115,55
--> Entrada: REPLACE(CAST(SALARIO / (pfunc.JORNADAMENSAL / 60) AS numeric(15, 2)), '.', ',') AS SALARIO_HORA,
Saída: 31,80
Entrada: FORMAT(CASE
WHEN PFCOMPL.c011 <> 'NULL' THEN PFUNC.SALARIO * 0.40 + PFUNC.SALARIO
ELSE PFUNC.SALARIO
END, 'C', 'pt-br') AS 'SALARIO_C_GRATIFI',
Saída: R$6.359,92
Entrada: CASE
WHEN PFUNC.NOME = 'PROFESSOR DE ENSINO SUPERIOR I' THEN REPLACE(CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) AS numeric(15, 2)), '.', ',')
WHEN PFUNC.NOME = 'PROFESSOR DE ENSINO SUPERIOR II' THEN REPLACE(CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) AS numeric(15, 2)), '.', ',')
WHEN PFUNC.NOME = 'PROFESSOR DE ENSINO SUPERIOR III' THEN REPLACE(CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) AS numeric(15, 2)), '.', ',')
WHEN PFUNC.NOME = 'ORIENT. DE CURSOS - INTERP. DE LIBRAS' THEN REPLACE(CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) AS numeric(15, 2)), '.', ',')
WHEN PFUNC.NOME = 'ORIENTADOR DE CURSOS' THEN REPLACE(CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) AS numeric(15, 2)), '.', ',')
ELSE
REPLACE(CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) *200 AS numeric(15, 2)), '.', ',')
end AS 'SALARIO 200hs',
Saída: 6359,92
Entrada: REPLACE(CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) *200 AS numeric(15, 2)), '.', ',') AS 'COM VÍRGULA',
CAST(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60) *200 AS numeric(15, 2)) AS 'SEM VÍRGULA',
(PFUNC.SALARIO / (PFUNC.JORNADAMENSAL / 60)) *200 AS TESTE,
Saída:
Neste exemplo, considerando a data de hoje 14/04/2023, a consulta irá retornar férias com data de início maior ou igual a data de hoje - a diferença de "dias de férias ",
e data fim de férias menor que a data do sistema (hoje) + "dias de férias".
Poderia ser apenas getdate() + 30, se os dias de férias fosse fixo em 30.
SELECT
FORMAT(F.DATAINICIO, 'dd/MM/yyyy') AS DATA_INICIO,
FORMAT(F.DATAFIM, 'dd/MM/yyyy') AS DATA_FIM,
CAST((F.DATAFIM - F.DATAINICIO)AS INT)+1 AS DIAS_FERIAS
FROM PFUFERIASPER F (NOLOCK)
INNER JOIN PFUFERIAS E (NOLOCK) ON E.CHAPA=F.CHAPA AND E.FIMPERAQUIS=F.FIMPERAQUIS AND E.CODCOLIGADA=F.CODCOLIGADA
INNER JOIN PFUNC U (NOLOCK) ON U.CHAPA=F.CHAPA AND U.CODCOLIGADA=F.CODCOLIGADA
INNER JOIN PSECAO S (NOLOCK) ON S.CODIGO=U.CODSECAO AND S.CODCOLIGADA=U.CODCOLIGADA
INNER JOIN PFUNCAO C (NOLOCK) ON C.CODIGO=U.CODFUNCAO AND C.CODCOLIGADA=U.CODCOLIGADA
WHERE
/*AND F.DATAINICIO >= GETDATE() AND DATEDIFF(DAY, GETDATE(), F.DATAFIM) > 30*/
F.DATAINICIO >= (GETDATE()-CAST((F.DATAFIM - F.DATAINICIO)AS INT)+1 )
AND F.DATAFIM < GETDATE() + (CAST((F.DATAFIM - F.DATAINICIO)AS INT)+1)
--F.DATAINICIO >=:DE_DT_INICIO_GOZO AND F.DATAINICIO <=:ATÉ_DT_INICIO_GOZO
--ORDER BY F.DATAINICIO, S.DESCRICAO, U.NOME
-----------
Convert(varchar(10),PF.DTPAGTO,103) as DATA_PAGAMENTO,
-----------------
Join entre uma tabela com DATA e retorna período que neste caso, chamarei de período de apuração de ponto. Tenho uma tabela com a data dos fatos (AAFHTFUN) e a tabela com os períodos de início e fim do periodo de apuração (APERIODO)
Tabela APERIODO
Exemplo de Sub selects (Select dentro de um select)
Data Referência é a data do fato ocorrido e através desta data, ele retorna a data inicial e final do período de apuração, ou seja, na primeira linha, a data do fato ocorreu dua 08/02/2023 e será computado no período de apuração que iniciou dia 15 de janeiro e finalizou dia 08 de fevereiro.
Neste exemplo abaixo, a opção de comentário retornará o mês e ano atual.
Por exemplo, considere que hoje é dia 24/05/2023, será retornado dados iguais a este mês e ano.
Já a linha ativa, retornará o mês anterior conforme exemplo:
+ alguns exemplos
Data_Ref_QP pegar a última data do mês anterior
Ano_QP o ano e assim por diante.