![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
![]() Hi @all!
Ich hab da eine Access-Anwendung, die inkonsistenten Tabellen liegen auf einem MS-SQL Server. Jetzt möchte ich gerne aus zwei Tabellen ungleiche Spaltenpaare herausfinden. Beispiele: Code:
TAB1 RG_NR REC_NR 100 1 100 2 100 3 100 4 201 55 300 1 300 2 400 1 400 2 400 5 500 5 800 2 TAB2 RG_NR REC_NR 100 1 100 2 100 3 202 56 300 2 300 3 400 2 600 5 700 2 Code:
SELECT * FROM Tab1, Tab2 WHERE Tab1.RG_NR = Tab2.RG_NR AND Tab1.REC_NR = Tab2.REC_NR Grüße & Danke! Manx PS: Hab mit SQL nicht wirklich viel am Hut |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() |
![]() select * from tab1, tab2
where not exists ( SELECT * FROM Tab1, Tab2 WHERE Tab1.RG_NR = Tab2.RG_NR AND Tab1.REC_NR = Tab2.REC_NR)
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
![]() Hi pong!
So findet er leider gar nichts. Ich hab's bisher so probiert: Code:
SELECT * FROM Tab1 WHERE RG_NR NOT IN ( SELECT Tab1.RG_NR FROM Tab1, Tab2 WHERE Tab1.RG_NR = Tab2.RG_NR AND Tab1.REC_NR = Tab2.REC_NR ) OR Tab1.REC_NR NOT IN ( SELECT Tab1.REC_NR FROM Tab1, Tab2 WHERE Tab1.RG_NR = Tab2.RG_NR AND Tab1.REC_NR = Tab2.REC_NR ) Code:
100 4 201 55 400 5 500 5 800 2 Code:
300 1 400 1 Manx |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 23.03.2000
Ort: Graz
Alter: 71
Beiträge: 3.567
|
![]() SELECT
* FROM tab1, tab2 EXCEPT SELECT * FROM Tab1, Tab2 WHERE (Tab1.RG_NR = Tab2.RG_NR) AND (Tab1.REC_NR = Tab2.REC_NR)
____________________________________
Ciao |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
![]() Hi und Danke euch beiden!
@FranzK MS-SQL 2003 ![]() aber so schaut's gut aus: Code:
SELECT * FROM Tab1 WHERE NOT EXISTS (SELECT * FROM Tab2 WHERE Tab1.RG_NR = Tab2.RG_NR AND (Tab1.REC_NR = Tab2.REC_NR) ) Manx |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() Registriert seit: 23.03.2000
Ort: Graz
Alter: 71
Beiträge: 3.567
|
![]() Hi
Ja, stimmt. Bei MS gibt es den EXCEPT-Operator erst ab 2005. Aber deine Lösung erscheint mir verdächtig. Ich fürchte, sie unterschlägt Records aus Tab2, die nicht in Tab1 aufscheinen...
____________________________________
Ciao |
![]() |
![]() |
![]() |
#7 |
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
![]() Hi!
Danke für den Hinweis, soll mir egal sein, ich brauch nur alle fehlenden Rows aus Tab1 in Tab2, was funktioniert hat. Danke! Manx PS: eigentlich ist es ein MS-SQL 2000 |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|