von RobertG » Mi, 17.06.2015 16:08
Hallo Birgit,
Du hast zwei Abfragen, die ich gegebenenfalls als Ansichten speichern würde:
Code: Alles auswählen
SELECT "Kommunikation"."Datum_Kom", "Kontakte"."Name", "Kommunikation"."Wiedervorlage", "Kommunikation"."Bemerkung" FROM "Kommunikation", "Kontakte" WHERE "Kommunikation"."Kontakt-ID" = "Kontakte"."Kontakt-ID" AND DATEDIFF( 'dd', "Wiedervorlage", CURDATE( ) ) >= 0
und
Code: Alles auswählen
SELECT "Kontakte"."Name", "Dokumente_Kunden"."Datum_Dok", "Dokumente"."Dokumentenname" FROM "Kontakte", "Dokumente_Kunden", "Dokumente" WHERE "Dokumente_Kunden"."FK_Kontakt-ID" = "Kontakte"."Kontakt-ID" AND "Dokumente_Kunden"."FK_Dokument-ID" = "Dokumente"."Dokument-ID" AND DATEDIFF( 'dd', "Datum_Dok", CURDATE( ) ) > 100
Das Feld, das in beiden Anfragen vorhanden ist, ist das Feld "Name".
Fasst Du die Anfragen mit
Code: Alles auswählen
SELECT ... FROM "Wiedervorlage_Kom", "Wiedervorlage_Dok" WHERE "Wiedervorlage_Kom"."Name" = "Wiedervorlage_Dok"."Name"
zusammen, so werden nur die Zeilen angezeigt, in denen bei beiden Abfragen das Feld "Name" gleich belegt ist.
Bei
Code: Alles auswählen
SELECT ... FROM "Wiedervorlage_Kom" LEFT JOIN "Wiedervorlage_Dok" ON "Wiedervorlage_Kom"."Name" = "Wiedervorlage_Dok"."Name"
werden alle Datensätze von "Wiedervorlage_Dok" angezeigt, auch wenn kein Name in "Wiedervorlage_Kom" existiert.
Entsprechendes gilt natürlich bei umgekehrter Aufführung der Tabellen.
Das Ganze hat mit Union nichts zu tun, da die Tabellen unterschiedliche Felder haben.
Gruß
Robert
Hallo Birgit,
Du hast zwei Abfragen, die ich gegebenenfalls als Ansichten speichern würde:
[code]
SELECT "Kommunikation"."Datum_Kom", "Kontakte"."Name", "Kommunikation"."Wiedervorlage", "Kommunikation"."Bemerkung" FROM "Kommunikation", "Kontakte" WHERE "Kommunikation"."Kontakt-ID" = "Kontakte"."Kontakt-ID" AND DATEDIFF( 'dd', "Wiedervorlage", CURDATE( ) ) >= 0
[/code]
und
[code]
SELECT "Kontakte"."Name", "Dokumente_Kunden"."Datum_Dok", "Dokumente"."Dokumentenname" FROM "Kontakte", "Dokumente_Kunden", "Dokumente" WHERE "Dokumente_Kunden"."FK_Kontakt-ID" = "Kontakte"."Kontakt-ID" AND "Dokumente_Kunden"."FK_Dokument-ID" = "Dokumente"."Dokument-ID" AND DATEDIFF( 'dd', "Datum_Dok", CURDATE( ) ) > 100
[/code]
Das Feld, das in beiden Anfragen vorhanden ist, ist das Feld "Name".
Fasst Du die Anfragen mit
[code]SELECT ... FROM "Wiedervorlage_Kom", "Wiedervorlage_Dok" WHERE "Wiedervorlage_Kom"."Name" = "Wiedervorlage_Dok"."Name"[/code]
zusammen, so werden nur die Zeilen angezeigt, in denen bei beiden Abfragen das Feld "Name" gleich belegt ist.
Bei
[code]SELECT ... FROM "Wiedervorlage_Kom" LEFT JOIN "Wiedervorlage_Dok" ON "Wiedervorlage_Kom"."Name" = "Wiedervorlage_Dok"."Name"[/code]
werden alle Datensätze von "Wiedervorlage_Dok" angezeigt, auch wenn kein Name in "Wiedervorlage_Kom" existiert.
Entsprechendes gilt natürlich bei umgekehrter Aufführung der Tabellen.
Das Ganze hat mit Union nichts zu tun, da die Tabellen unterschiedliche Felder haben.
Gruß
Robert