Announcement

Collapse
No announcement yet.

Procedure um Historie eines Datensatzes zu bekommen!

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

  • Procedure um Historie eines Datensatzes zu bekommen!

    PK VNR VERSION BEARBEITET
    1 123456 1 01.01.2010
    2 123456 2 01.01.2011
    3 123456 3 01.01.2012
    4 123456 4 23.08.2012
    5 123457 1 01.01.2010
    6 123457 2 01.01.2010
    7 123457 3 22.08.2012

    Guten Tag,
    oben sieht man die Datenbank die ich habe nun auch direkt mein Problem.
    Ich muss ein Select / Procedur bauen mit der es möglich ist einen Datensatz sammt einer Historie zu bekommen wenn einer der Datensätze größer eines bestimmten Datum ist.
    z.B.
    SELECT * FROM WHATEVER WHERE BEARBEITET > 22.08.2012
    Würe mir halt aktuell nur

    PK VNR VERSION BEARBEITET
    4 123456 4 23.08.2012

    Liefern.
    Brauchen tue ich aber!

    PK VNR VERSION BEARBEITET
    1 123456 1 01.01.2010
    2 123456 2 01.01.2011
    3 123456 3 01.01.2012
    4 123456 4 23.08.2012

    Ich habe es mit einer Procedur versucht die aber beim ausführen mir

    ISC ERROR MESSAGE:
    multiple rows in singleton select
    At procedure 'BPD_BI_INCREMENTAL' line: 12, col: 1

    Liefert.

    Ich habe aktuell keine ahnung wie ich das Realisieren soll,
    in MySQL hatte ich dafür eine Procedur die eine Tabelle temporär angelegt hat und da alle VNR distinct reinschrieb.
    Dann führe ich eine Zweites mal den Select aus aber mit WHERE VNR IN(SELECT....
    Das bekomme ich in Firebird aber leider nicht hin...
    Jemand eine idee wie man das evtl. Sogar in einer Procedur lösen kann?

    Sorry für die Rechtschreibfehler...

    Und Danke!

  • #2
    Also bei einem Treffer entsprechenden deinem ersten Select dann alle Datensätze mit gleicher VNR?

    Dann

    [Highlight=SQL]SELECT *
    FROM WHATEVER
    WHERE VNR IN (SELECT VNR FROM WHATEVER WHERE BEARBEITET > @meinLiebesFilterDatum)
    ORDER BY VNR, VERSION
    [/Highlight]

    Comment


    • #3
      Gut das hatte ich auch schon in betracht gezogen aber dann leidet die Performance wir reden über 100000+ Datensätze und bei jedem müssen 100000 überprüft werden ob die VNR dabei ist!

      Comment


      • #4
        Wenn VNR indiziert ist sollte das kein Problem sein. Auf jeden Fall ist es immer schneller als jede Procedure die ich mir vorstellen kann.

        Comment

        Working...
        X