Seite 1 von 1

Re: Datensätze vereinen

Verfasst: Mi, 29.07.2009 22:12
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

Re: Datensätze vereinen

Verfasst: Sa, 01.08.2009 11:50
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

Re: Datensätze vereinen

Verfasst: Sa, 01.08.2009 14:08
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