Datensätze vereinen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Datensätze vereinen

Re: Datensätze vereinen

von Barlee » Sa, 01.08.2009 14:08

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

Re: Datensätze vereinen

von Barlee » Sa, 01.08.2009 11:50

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

von Barlee » Mi, 29.07.2009 22:12

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

Nach oben