Announcement

Collapse
No announcement yet.

Per SQL nur Daten des letzten Detailsatzes anzeigen

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

  • Per SQL nur Daten des letzten Detailsatzes anzeigen

    Hallo,

    kennt jemand eine Möglichkeit bei einer SQL-Auswertung nur den Hauptdatensatz mit Daten des zuletzt eingegebenen Detailsatzes anzuzeigen. z.B. bei einer Dokumentverwaltung werden die Grunddaten in der Tabelle Dok_Nr verwaltet. In Dok_Vers werden die Detaildaten über die verschiedenen Versionen verwaltet. Ich möchte nun die Grunddaten mit der aktuellen Versions-Nr. angezeigt bekommen. Bei einem normalen JOIN werden mir aber alle Versionen angezeigt.

    Vielen Dank für Eure Hilfe

    Gruß Gerd

  • #2
    Vielleicht gehts besser aber so funktionierts:<br>
    Select D1.ID_Dok_nr, D2.ID_Dok_vers from Dok_nr D1, dock_vers D2<br>
    where<br>
    D2.ID_Dok_vers in (Select max(ID_Dok_vers) from dok_vers where ID_Dok_nr = :SearchDockNr)<br>
    and (D1.ID_Dok_nr = :SearchDockNr)<br>
    <br>
    BYE BERN

    Comment


    • #3
      Hallo Bernd,

      so weit war ich auch schon. Problem bei dieser Art ist aber, dass nur von dem einen über :SearchDockNr spezifizierten Dokument die aktuelle Version angezeigt wird. Ich möchte aber eine ganze Liste von Dokumenten anzeigen.

      Gruß Ger

      Comment


      • #4
        Hallo Gerd,
        <pre>
        Select D1.ID_Dok_nr, D2.ID_Dok_vers from Dok_nr D1, dock_vers D2
        where
        D2.ID_Dok_vers in (Select max(A.ID_Dok_vers) from dok_vers A where A.ID_Dok_nr = D2.ID_Dok_nr) and
        D1.ID_Dok_nr = D2.ID_Dok_nr
        </pre>
        liefert alle Datensätze in D1 mit den Werten des jeweils passenden Datensatzes in D2 mit dem höchsten Wert in Dok_vers.

        Gruß Fal
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Hi,

          Falks Vorschlag wird auch funktionieren, da ich bei Subselects aber immer Bauchschmerzen bekomme, würde ich folgenden Weg wählen:

          1) Einen View ( z.B. MaxVersions ) erzeugen der folgendes enthält:

          Select MasterID, Max(Version) from Detailtable group by MasterID

          2) Diesen dann per join mit den Hauptdatensätzen verknüpfen:

          Select MT.*, MV.MaxVers from Mastertable MT join Masterversions MV on MT.ID=MV.MasterID

          Gruß
          Gesin

          Comment


          • #6
            @Gesine: Dein Vorschlag ist natürlich auch übersichtlicher als das Subselect, aber es gibt durchaus die Konstellation das ich auf der DB irgendetwas auswerten muß aber als "normaler" User nicht das Recht habe eine Table oder eine View zu createn. - Soll vorkommen ... Deshalb ist mir das Subselect etwas geläufiger ;-)

            Gruß Fal
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Hallo Gerd,
              ich programmiere zur Zeit ebenfalls eine Dokumentenverwaltung (für die Qualitätssicherung im Betrieb). Wenn Sie daran interessiert sind und zum Austausch von Ergebnissen, können Sie mit mir Kontakt aufnehmen unter [email protected].
              Gruss Rud

              Comment

              Working...
              X