SQL Tabellenvergleich

Advantage Database Server

Moderator: Moderatoren

Antworten
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

SQL Tabellenvergleich

Beitrag 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
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
hschmidt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 164
Registriert: Mo, 09. Jan 2006 17:06
Wohnort: Paderborn
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: SQL Tabellenvergleich

Beitrag von hschmidt »

Hallo Uli,

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

Hans
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: SQL Tabellenvergleich

Beitrag 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
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
hschmidt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 164
Registriert: Mo, 09. Jan 2006 17:06
Wohnort: Paderborn
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: SQL Tabellenvergleich

Beitrag 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
hschmidt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 164
Registriert: Mo, 09. Jan 2006 17:06
Wohnort: Paderborn
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: SQL Tabellenvergleich

Beitrag 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
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: SQL Tabellenvergleich

Beitrag 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
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
hschmidt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 164
Registriert: Mo, 09. Jan 2006 17:06
Wohnort: Paderborn
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: SQL Tabellenvergleich

Beitrag 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
Antworten