Announcement

Collapse
No announcement yet.

"Komplizierter" Join

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

  • "Komplizierter" Join

    Hallo!

    Ich habe 3 Tabellen(vereinfacht dargestellt)

    Mitarbeiter:
    nr(smallint) | Vorname(varchar) | Nachname(varchar)

    Arbeitszeitmodell:
    nr(smallint) | bezeichnung

    Mitarbeiter_Laufbahn:
    mitarbeiter(smallint) | Datum(DateTime) | Typ(1-3 Eintritt, Wechsel, Austritt) | Arbeitszeitmodell(smallint)

    d.h zu jedem mitarbeiter wird gespeichert wenn er eintritt, wenn er ein anderes Arbeitszeitmodell bekommt, bzw wenn er austritt

    Nun möchte ich eine Ausgabe haben die folgendermaßen ausieht:

    Mitarbeiter.Vorname | Mitarbeiter.Nachname | Arbeitszeitmodell.Bezeichnung


    bei Arbeitszeitmodell.Bezeichnung möchte ich aber das Aktuelle haben, also das mit dem aktuellsten Datum. Ist so ein Join möglich?

    Danke!
    Flo

  • #2
    Hallo,

    mglws. hilft dir das: Bei "doppelten" Datensätzen nur einen anzeigen

    Gruß Falk
    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


    • #3
      Danke das hat mir sehr weitergeholfen!

      Gehe ich richtig der Annahme das die Problemstellung wohl ohne Subselect nicht zu lösen ist?

      Comment


      • #4
        Weiß nicht was die MS-SQL-Experten sagen, aber mit Standardmitteln nur über Subselect.
        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
          So geht es beim MSSQL-Server auch (ich benutze hier das Falksche Beispiel aus dem Link):

          SELECT a.id, a.name, a.last_use
          FROM doppeltest a
          Left outer Join doppeltest b on b.name = a.name
          and b.last_use>a.lastuse
          WHERE b.lastuse is null

          Gruß
          docendo discimus

          Comment


          • #6
            Hallo frauwue,

            das Bsp. ist GUT! und sollte ja nicht nur mit dem MS-SQL-Server funktionieren. Mit deiner Erlaubnis (und nach Korrektur der Schreibfehler von lastuse => last_use ) würde ich den zitierten Beitrag damit ergänzen!?

            Anmerkung: Die Join-Variante hat "Schwächen" wenn das Datumsfeld selbst NULL-Werte enthalten kann.

            Gruß Falk
            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 Falk,

              feut mich, dass es Dir gefällt. Du kannst es gerne verwenden.

              Gruß
              frauwue
              docendo discimus

              Comment

              Working...
              X