View Full Version : nur bestimmte Sätze zählen, die noch nicht gezäglt sind
Hallo
für folgendes SQL bekomme ich einen Fehler, das 2. max(rrn( wird bemängelt.
SELECT COUNT(*), max(RRN(datei)) FROM datei WHERE
feld LIKE 'EV%' AND max(RRN(datei)) NOT IN (SELECT
satznrfeld FROM datei2 WHERE ...)
lasse ich dort das max weg, (was für mich sogar richtiger ist)
SELECT COUNT(*), max(RRN(datei)) FROM datei WHERE
feld LIKE 'EV%' AND RRN(datei) NOT IN (SELECT
satznrfeld FROM datei2 WHERE ...)
so ist das Ergebniss des 1. max(rrn(
immer 1 (es gibt keinen Satz mit RRN(1) in der datei.
lasse ich das in ganz weg
SELECT COUNT(*), max(RRN(datei)) FROM datei WHERE
feld LIKE 'EV%'
ist das erg. richtig
Wie kann ich nur die Sätze zählen,
(und die max(rrn)) bekommen) die noch nicht in der 'schon-gezählt-datei' = datei2 stehen ?
Danke Robi
Angaben unter WHERE beeinflussen die Ergebnismenge. Versuche einmal, das MAX(...) NOT IN ... mittels HAVING anzubinden.
Da mußt du ein CTE verwenden:
with
MyErg as (
SELECT COUNT(*) as mycount, max(RRN(datei)) as myrrn FROM datei
where feld LIKE 'EV%'
)
select * from MyErg
WHERE myrrn NOT IN (SELECT
satznrfeld FROM datei2 WHERE ...)
ruft nach Exception join
select count(*), max(rrn(datei))
from datei d1 left exception join datei2 d2
on d1.rrn(datei) = d2.satznrfeld
where d1.feld like 'EV%'
D*B
der sich fragt, warum diese Kiste eine Datenbank hat (F*Z hätte wohl gesagt: konnte man das nicht anders machen???)
Hallo
für folgendes SQL bekomme ich einen Fehler, das 2. max(rrn( wird bemängelt.
SELECT COUNT(*), max(RRN(datei)) FROM datei WHERE
feld LIKE 'EV%' AND max(RRN(datei)) NOT IN (SELECT
satznrfeld FROM datei2 WHERE ...)
lasse ich dort das max weg, (was für mich sogar richtiger ist)
SELECT COUNT(*), max(RRN(datei)) FROM datei WHERE
feld LIKE 'EV%' AND RRN(datei) NOT IN (SELECT
satznrfeld FROM datei2 WHERE ...)
so ist das Ergebniss des 1. max(rrn(
immer 1 (es gibt keinen Satz mit RRN(1) in der datei.
lasse ich das in ganz weg
SELECT COUNT(*), max(RRN(datei)) FROM datei WHERE
feld LIKE 'EV%'
ist das erg. richtig
Wie kann ich nur die Sätze zählen,
(und die max(rrn)) bekommen) die noch nicht in der 'schon-gezählt-datei' = datei2 stehen ?
Danke Robi
@Pikachu
Danke, das hat so funktioniert !
@Fuerchau
so haben wir es zwischenzeitlich versucht, aber die having variante ist kürzer und lesbarer
@BenderD
vielen Dank aber wie gesagt: das andere ist kürzer und lesbarer.
@Konrad Zuse
doch, wenn die Anwendung in der Neuzeit entstanden wäre
Danke an alle !
Robi
Es stellt sich trotzdem noch die Frage, was denn so alles in der Datei2 drinsteht. Und welche Sätze alles durch den COUNT(*) gezählt werden sollen. Vielleicht kannst du ein Beispiel machen?
Wie steht denn der Parameter REUSEDLT bei der ersten Datei?
Es geht um völlig wahlfreie Datenbankereignisse die gemeldet werden sollen. Aber eben nur ein mal (einstellbar)
Man erfasst n Bedingungen zu einer oder mehreren Dateien und sagt : Bitte email an ... wenn Bedingung eintritt. I.d.R. will man diese Info aber nicht jede halbe Stunde.
Robi
Dann darf aber der Parameter REUSEDLT der ersten Datei nicht auf *YES stehen, wenn auch Datensätze daraus gelöscht werden können. Und ihr dürft diese Datei auch nicht reorganisieren und neu anordnen (RGZPFM), da ansonsten der Inhalt der Datei 2 nicht mehr stimmt.