WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   SQL Problem (http://www.wcm.at/forum/showthread.php?t=170593)

JoergStueger 26.07.2005 11:13

SQL Problem
 
Hallo zusammen!

Folgendes Problem:

Ich hab hier eine Tabelle die in etwa so aussieht.

KNr. |Vorname |Nachname |Plz |Key

0001 |Franz |Huber |1020 |FraHub1020
4711 |Franz |Huber |1020 |FraHub1020

Das Problem daran ist, dass ich jeden Key nur (mit allen anderen Feldern) nur einmal exportieren möchte, dies aber über einen Distinct nicht möglich ist, da ja nicht alle Felder gleich sind.

Welcher davon gezogen wird, ist mir eigentlich egal, es sollte halt nur einer sein.

Weiss jemand Rat?

LG
Joerg

T.dot 26.07.2005 11:53

Du kannst das ganze ja so auslesen:

SELECT min(KNr.), Vorname, Nachname, Plz, Key FROM Tabelle
GROUP BY Vorname,Nachname,Plz,Key

Je nach SQL Dialekt speicherst du das in eine andere Tabelle und exportierst diese dann, denk ich mal?

mfg Thomas

JoergStueger 26.07.2005 12:01

Hi T.dot!

In die Richtung hab ich schon gebastelt ... Leider ist es so, dass sich auch die Schreibweise des zB Strassennamens unterscheiden kann.

Das ist die Tragödie dran.

Ich möchte am liebsten zu einem Key nur einen Satz (egal welchen) haben.

LG
Joerg

T.dot 26.07.2005 12:33

Ok, dann hab ich das vorher überlesen, sorry.

Wenn du MS-SQL oder nen Dialekt, der Unterabfragen unterstützt verwendest (mysql kann das erst ab einer neueren Version), müsste folgendes funktionieren:

SELECT * FROM Tabelle WHERE KNr IN (SELECT min(KNr) from Tabelle GROUP BY Key)

hab ich aber nicht getestet, aber denke so würds gehören....

mfg Thomas

JoergStueger 26.07.2005 12:36

Hallo!

Ich habe MS-SQL und es sieht gut aus!!!!!

Vielen herzlichen Dank!!!!!!!


LG
Joerg

snowman 26.07.2005 22:06

Vielleicht verstehe ich was nicht, aber das ist ein klassisches Beispiel für "GROUP BY".

Code:

SELECT * FROM Tabelle GROUP BY Key
gruss,
snowman

T.dot 27.07.2005 08:46

In MS-SQL geht das nicht (ka obs ein anderer dialekt kann), da bekommst du dann als Fehlermeldung:

Die Tabelle.KNr-Spalte ist in der Auswahlliste ungültig, da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist.

Und das für alle Spalten, die nicht in GROUP BY stehen.

mfg Thomas


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag