das Ganze liegt doch an dieser Beziehung:
Code: Alles auswählen
...
LEFT JOIN "t-kontakte" ON "t-kontakte"."AdressID" = "t-adressen"."ID"
LEFT JOIN "t-kontaktarten" ON "t-kontaktarten"."ID" = "t-kontakte"."KontaktartID"
...
Jetzt machst Du folgendes:
Code: Alles auswählen
SELECT "a".*, "t-kontaktarten".*, ( SELECT COUNT( "ID" ) FROM "t-kontakte" WHERE "ID" <= "a"."ID" AND "AdressID" = "a"."AdressID" ) AS "GruppenNr" FROM "t-kontakte" AS "a", "t-kontaktarten" WHERE "t-kontaktarten"."ID" = "a"."KontaktartID"
Code: Alles auswählen
SELECT "a".*, (SELECT "Kontaktart" FROM "t-kontakte-nr" WHERE "ID" = "a"."ID" AND "GruppenNr" = 2) AS "Kontaktart2", , (SELECT "Nummer" FROM "t-kontakte-nr" WHERE "ID" = "a"."ID" AND "GruppenNr" = 2) AS "Nummer2" FROM "t-kontakte-nr" AS "a" WHERE "GruppenNr" <= 1
Auch aus dieser Abfrage würde ich, sofern es funktioniert, eine Ansicht erstellen: t-kontakte-kontaktarten.
Jetzt ersetzt Du den obigen Auszug aus der Abfrage mit dem entsprechenden Bezug zu dieser letzten Ansicht. Aus
Code: Alles auswählen
...
LEFT JOIN "t-kontakte" ON "t-kontakte"."AdressID" = "t-adressen"."ID"
LEFT JOIN "t-kontaktarten" ON "t-kontaktarten"."ID" = "t-kontakte"."KontaktartID"
...
Code: Alles auswählen
...
LEFT JOIN "t-kontakte-kontaktarten" ON "t-kontakte-kontaktarten"."AdressID" = "t-adressen"."ID"
...
Gruß
Robert