SQL Datensatzabfrage die mehrere Spalten zurückgibt aber nur EINE gruppiert?

multitasker

Mitglied
Hallo,
Ich möchte per INSERT INTO Befehl einen Datensatz mit 3 Spalten einfügen, der sich in einer anderen Tabelle befindet.
Dabei ist es wichtig, dass keine doppelten Datensätze eingefügt werden. Die Datensätze sind jedoch oft nicht 100% identisch sondern in unterscheiden sich nur in 2 Spalten (B, C). Es soll aber nur Spalte A betrachtet werden, um die doppelten zu elimenieren.

So geht es leider nicht, da GROUP BY alle Spalten zum aggregieren brauch:

INSERT INTO ....
SELECT A,B,C
FROM tblQuote
GROUP BY A

So geht es leider nicht, da DISTINCT nur die 100% indentischen elimeniert:

INSERT INTO ....
SELECT DISTINCT A,B,C
FROM tblQuote


Kann sich jemand bitte meinem Problem annehmen.

Danke & Gruß
Jens
 
INSERT INTO test2
SELECT A,B,C
FROM test1
GROUP BY A

funktioniert bei mir (mysql).

Wenn du aber diesen Befehl öffters ausführst, dann tauchen in test2 mehrmals die gleichen Einträge auf.

Das könnte man so verhindern:

INSERT INTO test2
SELECT A,B,C
FROM test1
WHERE
A NOT IN (SELECT A FROM test2)
GROUP BY A

Edit: Was man vllt. noch zu GROUP BY sagen sollte, wenn es mehrere Einträge von A gibt, dann wählt er irgendein eintrag davon aus.
 
Zuletzt bearbeitet:
Genau muss es bei mir so heißen:

INSERT INTO test2 (x,y,z)
SELECT A,B,C
FROM test1
GROUP BY A

- prinzipiell - aber dies geht nicht, da bei einer GROUP BY Klausel alle nach SELECT stehenden Spalten auch beim GROUP BY stehen müssen.

So würde es gehen:

INSERT INTO test2 (x,y,z)
SELECT A,B,C
FROM test1
GROUP BY A,B,C
 
Finde ich schade, dass Access 2003 nicht SQL 99 konform ist.
http://developer.mimer.com/validator/parser99/index.tml
(Hab gerade mal meine Abfrage gecheckt, ob es SQL99 Konform ist)

Kannst du irgeneine Aussage über B und C treffen? Also dass man darüber auswählen kann? Z.B das AB, AC oder ABC eindeutig ist und das B oder C ein Zahlen wert darstellt?

Weil dann könnte man z.B. sagen, dass nur der Eintrag genommen werden soll, wo B am kleinsten ist, wenn es mehrere AB gibt.
 
Hat sich erledigt. Ich habe die unterschiedlichen Datensätze mit einem Datensatz aktualisiert, so dass sie alle gleich sind.
Aber dennoch danke für deine Hilfe.

Gruß Jens
 
Zurück