![]() |
![]() |
|
|
|||||||
| 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) | |
|
|