Anmelden

View Full Version : SQL Update - Nur den ersten Satz ändern



svente
22-08-18, 13:06
Hallo,

ich ändere per SQL Update eine Datei ab. Es sollen mit Count die Anzahl von Arbeitsgängen ermittelt werden.
Das macht er auch, aber er schreibt in jeden Satz die Anzahl rein.
Ich benötige aber nur den ersten Satz mit der Anzahl der Arbeitsgänge und die restlichen für den Arbeitsgang können mit 0 gefüllt werden.
Hatte es schon mit Fetch only probiert.

Hier ein Bsp. aus der Datei:
477

Für einen Denkanstoss wäre ich dankbar.

KingofKning
22-08-18, 13:49
Und Dir die ROW-ID vom ersten Satz zu holen?.....

GG 4301

svente
22-08-18, 14:33
Habe es jetzt auf einen anderen Weg hinbekommen. Ist zwar nicht das gewünschte wie im Thread, aber das Resultat stimmt.
Ich mache vorher im Count einen count(distinct 1). Dann schreibt er mir in jedes Feld nur den WErt 1.
Das kann ich dann in der Auswertung so verarbeiten.
Aber vielleicht hat jemand noch einen Lösung für das Problem wie im Thread geschrieben.
Mit Row-Id komme ich auch auf kein entsprechendes Ergebnis.

Fuerchau
22-08-18, 16:34
Da ja RRN inzwischen auch keyed ist, kannst du den Update auf den Satz mit der kleinsten RRN(*) setzen:

update myfile a set Anz = (
select count(*) from myfile b
where a.pmnr = b.pmnr and a.jahr = b.jahr and a.monat = b.monat
)
where
rrn(*) = (
select min(rrn(*))) from myfile b
where a.pmnr = b.pmnr and a.jahr = b.jahr and a.monat = b.monat
)