2017-01-02 5 views
-1

Ich muss 3 Felder zurückgeben, die in meiner SELECT-Anweisung unten erscheinen, aber ich brauche nur den Wert (FLDDESCR), der mit dem maximalen Datum (FLDDATE) für jede FLDREC_NUM verknüpft.Rückgabewert, der an maximales Datum gebunden ist

SELECT FV_OHM_EMPLOYEE.FLDREC_NUM, 
FV_OHM_FITTEST.FLDDATE, 
FV_OHM_RESPRATR.FLDDESCR 
FROM FV_OHM_EMPLOYEE 
INNER JOIN FV_OHM_FITTEST 
ON FV_OHM_EMPLOYEE.FLDREC_NUM=FV_OHM_FITTEST.FLDEMPLOYEE 
INNER JOIN FV_OHM_RESPRATR 
ON FV_OHM_FITTEST.FLDRESPIRTR=FV_OHM_RESPRATR.FLDCODE 
+2

Was [tag: rdbms] verwenden Sie? – Mureinik

Antwort

1

Versuchen Sie Folgendes:

SELECT FV_OHM_EMPLOYEE.FLDREC_NUM, 
FV_OHM_FITTEST.FLDDATE, 
FV_OHM_RESPRATR.FLDDESCR 
FROM FV_OHM_EMPLOYEE 
INNER JOIN FV_OHM_FITTEST 
ON FV_OHM_EMPLOYEE.FLDREC_NUM=FV_OHM_FITTEST.FLDEMPLOYEE 
INNER JOIN FV_OHM_RESPRATR 
ON FV_OHM_FITTEST.FLDRESPIRTR=FV_OHM_RESPRATR.FLDCODE 
WHERE 
FV_OHM_FITTEST.FLDDATE = 
    (SELECT DISTINCT MAX(FITTEST_2.FLDDATE) 
    FROM FV_OHM_FITTEST FITTEST_2 
    WHERE FV_OHM_EMPLOYEE.FLDREC_NUM=FITTEST_2.FLDEMPLOYEE) 
0

Versuchen Sie folgendes:

SELECT e.fldrec_num, 
    f.flddate, 
    r.flddescr 
FROM fv_ohm_employee e 
INNER JOIN 
    (SELECT t1.* 
    FROM fv_ohm_fittest t1 
    INNER JOIN 
    (SELECT fldemployee, 
     MAX(flddate) flddate 
    FROM fv_ohm_fittest 
    GROUP BY fldemployee 
    )t2 
    ON t1.fldemployee = t2.fldemployee 
    AND t1.flddate  = t2.flddate 
) f ON e.fldrec_num=f.fldemployee 
INNER JOIN fv_ohm_respratr r 
ON f.fldrespirtr=r.fldcode 
+0

Danke, das hat perfekt funktioniert! –

+0

@TaniaRodenHummelgard Bitte markieren Sie die angenommene Antwort, wenn es für Sie funktioniert. – GurV

Verwandte Themen