Versão atual:

Como fazer LEFT JOIN pegando o ultimo registro de data

Filial Destino (RE_FILIALP): serão gerados dados apenas para colaboradores, que atendam a situação de Transferidos. Deverá posicionar no ultimo registro da matricula (considerar RA_FILIAL + RA_MAT, posicionando na RE_FILIAL + RE_MATD), para determinar qual é o ultimo registro validar a data mais próxima a data informada no parâmetro desse relatório "Data até", considerando campo "Dt Transfer" (RE_DATA).

FROM 
    SRA010 RA
    LEFT JOIN SR8010 R8 ON R8_FILIAL = RA_FILIAL AND R8_MAT = RA_MAT AND R8.D_E_L_E_T_ = '' AND GETDATE() BETWEEN R8_DATAINI AND R8_DATAFIM
    --LEFT JOIN SRE010 RE ON RA_FILIAL = RE_FILIALP AND RE_MATD = RA_MAT AND RE.D_E_L_E_T_ = '' AND GETDATE() BETWEEN RE_DATA and RE_DATA
    LEFT JOIN SRE010 RE ON RE_FILIALP = RA_FILIAL AND RE_MATD = RA_MAT AND RE.D_E_L_E_T_ = ' ' AND MAX(RE.RE_DATA) BETWEEN 'cDataIni' AND 'cDataFim' AND GETDATE() = '' 
    --LEFT JOIN SRE010 RE ON RA_FILIAL = RE_FILIALP AND RE_MATD = RA_MAT AND RE.D_E_L_E_T_ = '' AND RA_SITFOLH = 'Transferido' AND RE_DATA <= GETDATE()

Versão (1):

Ver a versão formatada

Como fazer LEFT JOIN pegando o ultimo registro de data

Comentário

new question