Announcement

Collapse
No announcement yet.

Komplexere Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Komplexere Abfrage

    Hallo an alle ,

    ich bräuchte bitte eure Hilfe.
    Es geht um eine Abfrage, die folgendes machen soll:

    Also ich habe 2 Tabellen.
    In beiden Tabellen existiert eine Spalte mit einem Datumswert.

    Tabelle lpers1 die Spalte P_ARB_EINTR (DATE)
    Tabelle larbv die Spalte VD_KOZ_EINT (DATE)

    Meine Abfrage soll: Vergleich von L_pers1.p_arb_eintr mit L_Arbv.vd_koz_eintr
    früheres Datum zählt. Das Problem ist das dass in der Tabelle L_ARBV weniger Datensätze sind als in L_PERS1. Also wenn in der Tabelle L_LABRV keine Einträge oder keine DS gespeichert, sind dann sollen die Werte aus der Tabelle L_PERS1. Spalte P_ARB_EINTR genommen werden. Meine Abfrage sieht dann so aus:

    Code:
    SELECT DISTINCT
            L.MANDANT,
            LV.VD_VERTR_AB,
            L.p_nummer,
    
           case
              when LV.VD_KOZ_EINTR is null then L.P_ARB_EINTR
              when L.P_ARB_EINTR is null then LV.VD_KOZ_EINTR
              when LV.VD_KOZ_EINTR is null then L.P_ARB_EINTR
              when  L.P_ARB_EINTR <  LV.VD_KOZ_EINTR then  L.P_ARB_EINTR
           else  LV.VD_KOZ_EINTR
           end
           EINTRITTSDATUM
    FROM LPERS1 L,
         LARBV LV
    
    WHERE L.P_NUMMER (+)= LV.p_nummer
    AND L.MANDANT (+)= LV.MANDANT
    and LV.VD_VERTR_AB =
    (
        select max(lv2.VD_VERTR_AB)
        from LARBV LV2
        where LV2.P_NUMMER = L.P_NUMMER
        and lv2.MANDANT = L.MANDANT
    )
    order by L.p_nummer
    Ich bekomme aber spalten zurück in dem null drinnen steht. Also keine Werte.
    Kann mir bitte jemand sagen was falsch an meine Abfrage ist.

    Ich bedanke mich im Voraus.

    mfg. f_mal

  • #2
    Hilfe

    Hallo f_mal,

    also, erst mal die Gedanken sortieren und dann das Problem etwas konkreter beschreiben. Eine minimale Darstellung des Datenmodells ( "CREATE Table" mit den in der Abfrage angesprochenen Attributen, Constraints, etc.) wäre hilfreich.

    Abgesehen davon hast Du den Outer Join falsch gesetzt. Wenn in der Tabelle LARBV weniger Datensätze vorhanden sind, müsste Dein Statement
    ...
    where L.P_NUMMER = LV.p_nummer(+)
    ...

    lauten.

    Je genauer die Beschreibung des Problems, desto konkreter die Lösung!

    Gruß, Siegfried

    Comment

    Working...
    X