-
SQL Fetch First 1 Rows
Hallo *All,
wenn ich folgenden Select absetze:
select preis from artikelstamm
where nummer = 150000
fetch first 1 rows only
funktioniert das tadellos und ich bekomme wirklich nur den ersten gefundenen Satz angezeigt.
Gebe ich aber ein:
update artikelstamm
set preis =
(select preis from artikelstamm
where nummer = 150000
fetch first 1 rows only )
where nummer = 100000
bekomme ich die Fehlermeldung:
Schlüsselwort FETCH nicht erwartet. Gültige Token: ) UNION EXCEPT.
Geht der Fetch First in einem Subselect nicht oder ist meine Syntax falsch?
Gruss
Ulli
-
Fetch im Subselect gibts leider wirklich nicht. Hier musst du dir eine andere Methode ausdenken, um nur 1 Satz zu bekommen.
-
Danke,
(wäre ja auch zu schön gewesen)
mfg
Ulli
-
welchen willst du denn haben? ohne order by clause überlässt man die Reihenfolge der Sätze der Query Engine und könnte im Extremfall bei mehreren Aufrufen unterschiedliche Reihenfolgen bekommen. Fetch first ohne order by würde auf deutsch dann heißen: "gib mir irgendeinen". Will man einen bestimmten, muss man das präzise sagen:
select ...
from ...
where...
and nochnFeld = select max(...) (oder auch min(...) from... where...
D*B
 Zitat von USDAVIS
Hallo *All,
wenn ich folgenden Select absetze:
select preis from artikelstamm
where nummer = 150000
fetch first 1 rows only
funktioniert das tadellos und ich bekomme wirklich nur den ersten gefundenen Satz angezeigt.
Gebe ich aber ein:
update artikelstamm
set preis =
(select preis from artikelstamm
where nummer = 150000
fetch first 1 rows only )
where nummer = 100000
bekomme ich die Fehlermeldung:
Schlüsselwort FETCH nicht erwartet. Gültige Token: ) UNION EXCEPT.
Geht der Fetch First in einem Subselect nicht oder ist meine Syntax falsch?
Gruss
Ulli
-
 Zitat von BenderD
welchen willst du denn haben? ... Fetch first ohne order by würde auf deutsch dann heißen: "gib mir irgendeinen".
D*B
Ja, ich wollte tatsächlich irgendeinen von mehreren möglichen Sätzen mit derselben Art.nummer haben, die nur in Verbindung mit dem Lager eindeutig ist d.h. der Artikel kann in unterschiedlichen Lagern vorkommen, muss aber nicht zwangsläufig in jedem definierten Lager vorkommen. Der VKPreis ist in jedem Lager gleich und soll bei bestimmten Artikeln von anderen Artikeln übernommen werden.
Habe das jetzt im Prinzip so gelöst:
update artikelstamm
set preis =
(select preis from artikelstamm
where nummer = 150000 and
lager =
(select max(lager) from
artikelstamm where
nummer = 150000) )
where nummer = 100000
Würde Fetch First im Subselect gehen,
hätte ich mir allerdings den 2. Subselect sparen können.
Nochmals Danke für die Hinweise.
Gruss
Ulli
-
Warum nicht so? Oder übersehe ich da was wichtiges?
update artikelstamm
set preis =
(select max(preis) from artikelstamm
where nummer = 150000)
where nummer = 100000
-
Bingo !
Da hab' ich ja ein ziemlich grosses
Brett vor'm Kopf gehabt.
thx
Ulli
Similar Threads
-
By AndreasH in forum IBM i Hauptforum
Antworten: 13
Letzter Beitrag: 08-05-15, 13:09
-
By cicero22 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 14-08-09, 13:00
-
By pedro-zapata in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 11-09-06, 12:34
-
By linguin in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 04-08-06, 10:38
-
By roko in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 28-12-04, 09:45
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks