Datensätze vereinen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Datensätze vereinen

Beitrag von Barlee »

Hallo nano81,
Hat jemand eine Lösung?
Ich zumindest nicht - aber eine mögliche Herangehensweise.
Versuche, eine laufende Nummerierung pro ID hinzubekommen, also z.B.
ID 10 lfd_nr 1
ID 10 lfd_nr 2
ID 10 lfd_nr 3
ID 11 lfd_nr 1
ID 11 lfd_nr 2
ID 11 lfd_nr 3

Anschließend anhand der laufenden Nummerierung z.B. in Unterabfragen die lfd_nr 1...10 (max Zahl möglicher doppelter Einträge) abfragen ...
Beispiel:

Code: Alles auswählen

SELECT * FROM ... WHERE lfd_nr = 1
SELECT * FROM ... WHERE lfd_nr = 2
SELECT * FROM ... WHERE lfd_nr = 3
SELECT * FROM ... WHERE lfd_nr = 4
...
...
...
...und die Ergebnisse der einzelnen Ergebnistabellen über die ID zusammenjoinen (LEFT JOIN gegen Tabelle mit laufender Nummer 1, da ein Eintrag mit ID = 1 immer vorhanden ist)

Code: Alles auswählen

SELECT * FROM
(SELECT * FROM ... WHERE "lfd_nr" = 1) AS "Tab1" LEFT JOIN   
(SELECT * FROM ... WHERE "lfd_nr" = 2) AS "Tab2" ON "Tab1"."ID" = "Tab2"."ID"
Möglicherweise ergibt sich für Dich ein Ansatzpunkt.
Gruß Barlee
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Datensätze vereinen

Beitrag von Barlee »

Hallo nano,

diesen Ansatz kannst Du nur mit einer eindeutigen Spalte verfolgen. "ID" kommt in Deiner Tabelle mehrmals vor und ist somit nicht geeignet. Versuche evtl. mit der Primärschlüsselspalte zu einem Ergebnis zu kommen.

Gruß Barlee
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Datensätze vereinen

Beitrag von Barlee »

da muss jetzt noch eine Bedingung rein. Versuche es so:

Code: Alles auswählen

SELECT "ID", 
(SELECT COUNT("Key") FROM "Tabelle1" AS "X" WHERE "X"."Key"< "Tabelle1"."Key" AND "X"."ID"= "Tabelle1"."ID")+1 AS "lfn" FROM "Tabelle1"  ORDER BY "ID", "lfn"
Gruß Barlee
Antworten