PDA

View Full Version : sql Anzahl Datensätze in Zweit-Datei



rr2001
11-12-06, 10:13
werte Forenmitglieder,

mit folgender sql-Anweisung kann ich die feststellen, ob es in einer Zweit-Datei gleiche Sätze zur Erst-Datei gibt:

select Datei1.*, case when (select count(Datei2.*)
from Datei2 where Datei2.Feld1 = Datei1.Feld1)
> 1 then 'gleiche Sätze vorhanden'
else 'keine gleichen Sätze vorhanden'
from Datei 1

Leider kann man dieses Statement erst ab Release V5.R2
verwenden.
Kann mir jemand verraten, wie man das gleiche Ergebnis
mit einer sql-Abfrage bekommt, die auch auf einem älteren
Release läuft.
Danke.

Fuerchau
11-12-06, 12:37
select datei1.feld1, datei2.feld2, count(datei2)
from datei1
inner join datei2 on datei1.feld1=datei2.feld2
group by datei1.feld1, datei2.feld2
having count(datei2) > 1

rr2001
11-12-06, 13:57
lieber Hr. Fuerchau,

habe Ihr Statement so gut ich's konnte übersetzt.
Krieg aber den u. a. Fehler nicht weg.
Außerdem befürchte ich, dass ich mit dieser Lösung nur
die Datensätze mit entsprechendem Datensatz in Datei 2
angezeigt bekomme. Ich benötige jedoch auch alle anderen.
Ich muss nur zu jedem Datensatz in Datei 1 anzeigen, ob bzw. wieviele gleiche Datensätze in Datei 2 vorhanden sind oder nicht.

select veafpol7.apaulf, veafpol2.apaulf, count(veafpol2.apaulf)
from veafpol7
inner join veafpol2 on veafpol7.apaulf = veafpol2.apaulf
group by veafpol7.apaulf
having count(veafpol2.apaulf) > 1
Spalte APAULF oder Ausdruck in SELECT-Liste nicht gültig.

Fuerchau
11-12-06, 14:41
Ab V5R1 müsste auch folgendes klappen:

with
xDatei2 as (
select feld1, count(*) as xc
from datei2
group by feld1
)

select Datei1.*, case when xc > 1 then 'gleiche Sätze vorhanden'
else 'keine gleichen Sätze vorhanden'
from Datei inner join xdatei2 on feld2=feld1

rr2001
13-12-06, 14:04
Hr. Fuerchau,

funktioniert ausgezeichnet.