PDA

Vollständige Version anzeigen : Tabelle mit sich selbst vergleichen


earlybird
22.03.2006, 16:57
Hallo , nachdem ich jetzt 1000 x rumprobiert ,gegoogelt, und die Suche und auch die Hilfe von MS benutzt habe, frag ich nen Profi.

Also ,ich habe eine Tabelle mit dem folgenden Aufbau.
Feld1 Feld2
------------------
WERTA Info1
WERTB Info1
WERTC Info2


Ich will jetzt aus dieser Tabelle eine "Rankingtabelle" machen.
Je mehr INFO auf unterschliedlichen WERTEN liegt , desto wichtiger
die Info und umso weiter Oben soll die Info in meinem Ausgabefenster stehen.


Wie aber krieg ich das hin, das innerhalb der gleichenTabelle verglichen.

Hintergrund:
Das ganze ist eine Art von Volltextindex.
Im Wert steht das Wort, und in Info der Zeilenindex auf die Datentabelle in der der Artikel abgelegt ist (bzw. der Hyperlink auf das Serververzeichniss mit den Dokumenten)

Wenn mir noch jemand dabei gleich sagt, wie ich doppelte Einträge entfernen kann wäre das super.

Hat jemand da evtl. mal ein Beispielcoding das Tabellenvergleichen, den ich mir mal zu ansehen kann ?

Vielen Dank

Roland04
22.03.2006, 18:54
guck mal unter selfjoin und distinct

Nouba
22.03.2006, 19:12
Zur Sortierung: Erstelle eine Abfrage über die Tabelle, die die gleichen Feldwerte zusammenfasst (gruppiert) und die deren Anzahl zählt. Danach erstellst Du eine weitere Abfrage, fügst die Tabelle und die vorherige Abfrage im Entwurf hinzu und verbindest dann über Feld2. Jetzt muß nur noch nach der Häufigkeit absteigend sortiert werden.

1. Abfrage: qgrpInfoWichtung

SELECT
Feld2
, Count(*) AS WICHTUNG
FROM TABELLENNAME;

Zielabfrage:

SELECT
T.*
FROM TABELLENNAME AS T
INNER JOIN qselInfoWichtung AS Q
ON T.Feld2 = Q.Feld2
ORDER BY
Q.WICHTUNG DESC
, T.Feld1;

Feld1 und Feld2 sollten in der Realität aber besser lange Ganzzahlenfelder sein und ein eindeutiger zusammengesetzer Index sollte verhindern, dass es zu doppelten Datensätzen kommt. Zusätzlich dürfte die Eigenschaft Eingabe erforderlich auf Ja zu setzen sein. Als Alternative käme auch ein Primärschlüssel über beide Felder in Betracht.

Die Geschichte mit dem Löschen doppelter Datensätze wurde hier im Forum schon vielfach erzählt - am Besten suchst Du einmal danach.