Fórum Subtração com Resultados de Case #602677
29/05/2019
0
SELECT P8_MAT, RA_NOME, P8_DATA, P8_CC, CTT_DESC01,
CASE
WHEN P8_TPMARCA = '1S' THEN P8_HORA
END IDAALMOCO,
CASE
WHEN P8_TPMARCA = '2E' THEN P8_HORA
END VOLTAALMOCO
FROM SP8010 SP8
INNER JOIN SRA010 SRA ON SRA.RA_MAT = SP8.P8_MAT AND SRA.D_E_L_E_T_=''
INNER JOIN CTT010 CTT ON CTT.CTT_CUSTO = SP8.P8_CC AND CTT.D_E_L_E_T_=''
INNER JOIN SR6010 SR6 ON SR6.R6_TURNO = SRA.RA_TNOTRAB AND SR6.D_E_L_E_T_=''
WHERE SP8.D_E_L_E_T_=''
AND P8_TPMARCA IN ('1S', '2E')
Gustavo Jacob
Curtir tópico
+ 0Post mais votado
31/05/2019
SELECT
*, (VOLTAALMOCO - IDAALMOCO) ALMOCO
FROM
(SELECT
P8_MAT, RA_NOME, P8_DATA, P8_CC, CTT_DESC01,
MAX(CASE WHEN P8_TPMARCA = '1E' THEN P8_HORA END) ENTRADA,
MAX(CASE WHEN P8_TPMARCA = '1S' THEN P8_HORA END) IDAALMOCO,
MAX(CASE WHEN P8_TPMARCA = '2E' THEN P8_HORA END) VOLTAALMOCO,
MAX(CASE WHEN P8_TPMARCA = '2S' THEN P8_HORA END) SAIDA
FROM
SP8010 SP8
INNER JOIN SRA010 SRA ON
SRA.RA_MAT = SP8.P8_MAT AND SRA.D_E_L_E_T_=''
INNER JOIN CTT010 CTT ON
CTT.CTT_CUSTO = SP8.P8_CC AND CTT.D_E_L_E_T_=''
INNER JOIN SR6010 SR6 ON
SR6.R6_TURNO = SRA.RA_TNOTRAB AND SR6.D_E_L_E_T_=''
WHERE
SP8.D_E_L_E_T_=''
AND P8_TPMARCA IN ('1S', '2E')
GROUP BY
P8_MAT, RA_NOME, P8_DATA, P8_CC, CTT_DESC01
) TAB
Emerson Nascimento
Gostei + 1
Mais Posts
30/05/2019
Bruno Pardim
CASE WHEN P8_DATA = P8_DATA1 THEN IDAALMOCO - VOLTAALMOCO
ELSE 'BLABLABLA'
END As Calculo
Gostei + 0
31/05/2019
Gustavo Jacob
CASE WHEN P8_DATA = P8_DATA1 THEN IDAALMOCO - VOLTAALMOCO
ELSE 'BLABLABLA'
END As Calculo
Ele entende o P8_DATA1, IDAALMOCO e o VOLTAALMOCO como campo inválido, pq não faz parte da tabela
Gostei + 0
31/05/2019
Gustavo Jacob
SELECT
*, (VOLTAALMOCO - IDAALMOCO) ALMOCO
FROM
(SELECT
P8_MAT, RA_NOME, P8_DATA, P8_CC, CTT_DESC01,
MAX(CASE WHEN P8_TPMARCA = '1E' THEN P8_HORA END) ENTRADA,
MAX(CASE WHEN P8_TPMARCA = '1S' THEN P8_HORA END) IDAALMOCO,
MAX(CASE WHEN P8_TPMARCA = '2E' THEN P8_HORA END) VOLTAALMOCO,
MAX(CASE WHEN P8_TPMARCA = '2S' THEN P8_HORA END) SAIDA
FROM
SP8010 SP8
INNER JOIN SRA010 SRA ON
SRA.RA_MAT = SP8.P8_MAT AND SRA.D_E_L_E_T_=''
INNER JOIN CTT010 CTT ON
CTT.CTT_CUSTO = SP8.P8_CC AND CTT.D_E_L_E_T_=''
INNER JOIN SR6010 SR6 ON
SR6.R6_TURNO = SRA.RA_TNOTRAB AND SR6.D_E_L_E_T_=''
WHERE
SP8.D_E_L_E_T_=''
AND P8_TPMARCA IN ('1S', '2E')
GROUP BY
P8_MAT, RA_NOME, P8_DATA, P8_CC, CTT_DESC01
) TAB
Deu super certo, era exatamente o que eu precisava, muito obrigado mesmo pela ajuda!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)