Seite 1 von 1

SQL Tabellenvergleich

Verfasst: Fr, 30. Jan 2009 13:08
von UliTs
Hallo Allerseits,

ich möchte auf dem ADS-Server mittels eines SQL-Befehls zwei Tabellen vergleichen
und zwar eine ausgewählte Menge an Spalten. Hat jemand eine Idee?

Uli

Re: SQL Tabellenvergleich

Verfasst: Mo, 02. Feb 2009 9:11
von hschmidt
Hallo Uli,

was genau möchtest Du vergleichen und wie soll das Ergebnis aussehen?

Hans

Re: SQL Tabellenvergleich

Verfasst: Mo, 02. Feb 2009 10:26
von UliTs
Hallo Hans,

ich habe 2 Tabellen.
Tabelle 1 mit Feldern RecNo,A,B,C,D
Tabelle 2 mit Feldern RecNo,B,C,D,E

Ich möchte die beiden Tabellen wie folgt vergleichen:
1) Bei gleicher RecNo sollen die Felder B,C,D ebenfalls gleich sein
2) Ist ein Datensatz in einer der Tabellen enthalten, muß er auch in der anderen Tabelle enthalten sein oder vielleicht einfacher ausgedrückt: alle RecNo'n in der einen Tabelle müssen auch in der anderen Tabelle enthalten sein.

Als Ergebnis würde im Prinzip TRUE bzw. FALSE reichen, es könnte jedoch eine Tabelle mit allen Datensätzen, bei denen 1) oder 2) NICHT erfüllt ist, als Ergebnis herauskommen.

Uli

Re: SQL Tabellenvergleich

Verfasst: Mo, 02. Feb 2009 12:25
von hschmidt
Hallo Uli,

ich bin auch kein SQL-Experte, aber ich denke, die Abfrage müsste in etwa so aussehen:

Code: Alles auswählen

select * from table_a where RecNo not in
(select a.RecNo from table_a a, table_b b where a.RecNo = b.RecNo and a.B = b.B and a.C = b.C and a.D = b.D)
Falls das Ergebnis nicht Deinen Erwartungen entspricht, solltest Du die Frage in der Advantage.StreamlineSQL-Newsgroup posten. Dort bekommst Du bestimmt eine Lösung.

Schöne Grüße

Hans

Re: SQL Tabellenvergleich

Verfasst: Mo, 02. Feb 2009 12:35
von hschmidt
Hallo Uli,

noch ein Nachtrag zu meinem vorherigem Posting: mit dieser Query bekommst Du alle Sätze aus Tabelle A zurück, die es in Tabelle B nicht gibt.
Wenn Du auch die Sätze aus Tabelle B brauchst, die es in A nicht gibt, mußt Du natürlich eine zweite, 'umgekehrte' Abfrage erstellen.
Vielleicht läßt sich das auch in einer Abfrage mit einem UNION-Statement erledigen - da mußt Du mal ein bisschen probieren.

Hans

Re: SQL Tabellenvergleich

Verfasst: Mi, 04. Feb 2009 11:26
von UliTs
Hallo Hans,

vielen Dank für die Tips.
Ich werde nach Realisierung über Erfolg/Performance berichten.
Noch eine Frage:
hschmidt hat geschrieben: Falls das Ergebnis nicht Deinen Erwartungen entspricht, solltest Du die Frage in der Advantage.StreamlineSQL-Newsgroup posten. Dort bekommst Du bestimmt eine Lösung.
Ich habe obige Newsgroup nicht gefunden. Kannst Du mir einen link mitteilen?

Uli

Re: SQL Tabellenvergleich

Verfasst: Mi, 04. Feb 2009 15:24
von hschmidt
Hallo Uli,
UliTs hat geschrieben:Ich habe obige Newsgroup nicht gefunden. Kannst Du mir einen link mitteilen?Uli
am besten gehst Du über http://devzone.advantagedatabase.com

Dort findest Du gleich auf der 1. Seite den Link zu den Newsgroups. Außerdem gibt es da Downloads der ADS-Versionen, Dokus usw. und eine Suchmöglichkeit in der Knowledgebase und den Newsgroups.

Für jeden, der mit ADS arbeitet, ist diese Seite sehr nützlich!

Hans