Wert für Vormonat ermitteln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wert für Vormonat ermitteln

    Hallo,

    ich habe in einer Tabelle ein bis und ein saldo. Nun möchte ich in einer Zeile die beiden Werte und die Werte des Vormonats ausgeben. Im Feld bis ist immer der Monatsultimo angegeben. Soweit habe ich das auch hinbekommen, allerdings wird der erste Monat nicht ausgegeben, da logischerweise kein Vormonat vorhanden ist.

    Code:
    select a.bis, a.saldo, vormonat.bis, vormonat.saldo
    from tbl_abschluss a
    left outer join tbl_abschluss vormonat
    on a.ma_id = vormonat.ma_id
    where a.ma_id =1
    and vormonat.bis = a.bis - date_part('day',a.bis)::integer 
    order by a.bis desc
    Es handelt sich hier um postgresql 7.3.4 - dürfte aber egal sein, dass müsste mit Standard-SQL lösbar sein ...

    Ich könnte mein Ziel erreichen, indem ich die Anweisung and vormonat.bis = a.bis - date_part('day',a.bis)::integer in der FROM-Klausel an JOIN-Bedingung notiere und nicht in WHERE - allerdings geht dadurch die Performence total runter. Eine Unterabfrage scheidet auch aus, da es sich nur um einen Teil eines größeren Konstrukts handelt - habe ich getestet, Performence geht wie oben beschrieben in den Keller.

    Wenn ich das in der WHERE-Klausel lösen könnte, wäre das optimal - habe ich für einen Fall mit einem festen Wert getestet. Ein einfaches or vormonat.id is null hilft auch nicht weiter - und jetzt bin ich am Ende - hat jemand einen Vorschlag?
Lädt...
X