Announcement

Collapse
No announcement yet.

Zeilen/Datensätze zusammenfassen

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

  • Zeilen/Datensätze zusammenfassen

    Hallo liebes Forum, ich habe ein Problem und hoffe ihr könnt mir weiterhelfen.
    In einer Tabelle stehen Datensätze mit Rechnungsdaten und Zahlungseingängen..
    Ich möchte hier aus mehreren Datensätzen die Zeit zwischen Fälligkeit und Bezahlung berechnen.
    Rechnungslegung:
    Datensatz1:
    Belegnummer Belegart Belegdatum Rechnungsempaenger Rechnungswaehrung Rechnungsbetrag_HW Saldo_LW Saldo_HW Faelligkeitsdatum
    2465 1 2015-12-31 00:00:00.000 ECU102014 EUR 36848,76 0 0 2016-02-29 00:00:00.000
    Belegart 1 = Rechnung versendet. Dazu dann das Fälligkeitsdatum

    Der nächste Datensatz zeigt den Zahlungseingang
    Datensatz2:
    Belegnummer Belegart Belegdatum Rechnungsempaenger Rechnungswaehrung Rechnungsbetrag_HW Saldo_LW Saldo_HW Faelligkeitsdatum
    2465 4 2016-01-05 00:00:00.000 ECU102014 EUR -36848,76 0 0 1753-01-01 00:00:00.000
    Belegart 4 ist also Zahlungseingang.

    Natürlich gibt es von solchen "Pärchen" einige.

    Ich würde gerne aus den Pärchen jeweils einen Datensatz machen, der dann so aussehen könnte:
    Belegnummer (für beide Sätze gleich)
    Belegdatum Rechnung
    Belegdatum Zahlung
    Rechnungsempfänger (für beide Sätze gleich)
    Rechnungswährung (für beide Sätze gleich)
    Saldo Rechnungsbetrag_HW
    Fälligkeitsdatum

    Dazu wär folgende Berechnung pro Datensatz klasse:
    Zahlung in Tagen nach Fälligkeitsdatum = Belegdatum aus Datensatz 2 - Fälligkeitsdatum aus Datensatz 1

    Leider kann es auch passieren, dass eine Rechnung in mehreren Teilzahlungen bezahlt wird.
    Dann habe ich pro Belegnummer vielleicht einen Datensatz mit Belegart 1 und dazu z.B. 2 Teilzahlungen jeweils mit der Belegart 5 ( 5 = Teilzahlung) und komme im Saldo trotzdem für diese Belegnummer wieder auf 0 ( also ausgeglichene Zahlung)

    Ich hoffe ich konnte das Problem verständlich darstellen und ihr habt eine Lösung für mich. Danke.
    Gruß Heiko

  • #2
    Für den Fall 1 würdest Du einen Select mit Selfjoin bauen.
    Pseudosekect:
    select <..> from rechnungen L where belegart=rechnungslegung left join
    select <..> from rechnungen Z where belegart=Zahlung
    on L.rechnung = Z.rechnung
    Die Tagesdifferenez wird dann als berechnete Spalte ausgegeben.

    Für den 2. Fall würdest Du anhand des Vorgehens oben den 2. Select austuaschen und hier eine Kumulation mit letztem (Max()) Teilzahlungsdatum und Summe der Beträge einsetzen.

    Probier mal un poste das Ergebnis hier.
    Gruß, defo

    Comment


    • #3
      Hallo defo, danke für deine Infos.
      Das hat in jedem Fall zur Lösung geholfen.
      Da ich selber etwas unsicher war noch die Info, dass man über die beiden Select noch ein Select * from o.ä. setzen muss um den Join hinzubekommen.
      Gruß Heiko

      Comment

      Working...
      X