Announcement

Collapse
No announcement yet.

Der richtige Join fehlt?!

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

  • Der richtige Join fehlt?!

    Hallo,

    ich zerbreche mir schon seit Tagen den Kopf über folgendem Sachverhalt:

    Es existiert eine Tabelle Angebote mit folgenden Feldern:
    ang_id, ang_nummer, ang_datetime, ang_betreff, ang_kommid

    Zusätzlich gibt es eine Tabelle Kommunikation mit folgenden Feldern:
    komm_id, komm_betreff, komm_datetime, komm_typ

    Soweit so gut. Jetzt möchte ich eine Ansicht erstellen, die alle Angebotsdatensätze beinhaltet + den zum Tagesdatum nächsten Kommunikationseintrag (komm_datetime) aus der Kommunikations-Tabelle. Es kann dabei durchaus auch vorkommen, dass es noch keine Kommunikationseinträge zu manchen Angeboten gibt, dann sollen trotzdem die Datensätze aus der Angebots-Tabelle erscheinen. Bedingung ist, dass jeder Angebotsdatensatz nur einmal erscheint, auch wenn es hierzu mehrere Kommunikationseinträge gibt.

    Ich hoffe, mir kann hier jemand einen Lösungsansatz aufzeigen bzw. mir einen Denkanstoss geben?

    Schon mal danke für Eure Antworten!

  • #2
    Hallo Ommy,

    warum möchtest du denn das KommunikationsDatum verwenden,
    wenn die Zuordnung per IDs möglich ist?

    PHP Code:
     SELECT 
         ang_id
        
    ,ang_nummer
        
    ,ang_datetime
        
    ,ang_betreff
        
    ,ang_kommid
        
    ,komm_id
        
    ,komm_betreff
        
    ,komm_datetime
        
    ,komm_typ
    FROM Angebote
    LEFT JOIN Kommunikation
        on Angebote
    .ang_kommid Kommunikation.komm_id 
    Und Falk Prüfer sprach: Formatierung von SQL in Beiträgen

    Comment


    • #3
      Hallo knoxyz,

      erstmal danke für die schnelle Antwort!

      So habe ich das auch schon probiert.
      Allerdings liefert mir das die Angebote mehrfach, da es mehrere Kommunikationseinträge zu den Angeboten gibt(1/n). Mein Ziel ist, zu jedem Angebot den jeweils vom Tagesdatum aus nächsten Kommunikationsdatensatz anzuzeigen (und hier nur die Spalte komm_datetime), ohne das die Angebote mehrfach erscheinen.
      Außerdem soll die Spalte komm_datetime auch leer angezeigt werden, wenn es keine Kommunikationseinträge zum Angebot gibt.

      Ich habe keine Ahnung, ob sich sowas realisieren lässt? Außerdem hoffe ich, dass meine Formulierung verständlich ist

      Grüße
      Ommy

      Comment


      • #4
        Doppelte Einträge

        Comment


        • #5
          Hallo ebis,

          das Thema ist offensichtlich ein Dauerbrenner !

          Auf jeden Fall hat mir Dein Link den entscheidenden Hinweis gegeben, gefehlt hat mir dann der:
          (Select min(komm_Datetime) from Kommunikation where komm_datetime >=GETDATE()) as nextcomm in meiner Abfrage.

          Vielen Dank für die Hilfe!

          Comment


          • #6
            Originally posted by Ommy View Post
            ...das Thema ist offensichtlich ein Dauerbrenner !
            Eben! Und weil das so ist, hat es einen eigenen Thread! 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

            Working...
            X