Subtração com Resultados de Case
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
Post 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
Mais Posts
30/05/2019
Bruno Pardim
CASE WHEN P8_DATA = P8_DATA1 THEN IDAALMOCO - VOLTAALMOCO
ELSE 'BLABLABLA'
END As Calculo
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
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!!
Clique aqui para fazer login e interagir na Comunidade :)