-
Warum willst Du denn überhaupt einen SELECT ... FETCH FIRST ROW?
Warum verdichtest Du die Daten nicht entsprechend mit einem Key in einer CTE (oder auch in einem SELECT in der FROM-Anweisung) und joinst das Ergebnis?
Mit dieser Technik, kann man in der Beispiel-View auch mindestens einen SELECT sparen. Bei dem Benutzer bin ich mir nicht ganz sicher, ob der auch in der gleichen CTE abgehandelt werden kann, dazu müsste ich die Dateien und Daten kennen.
... so auf die Schnelle, könnte das SELECT-Statement in der View wie folgt umgeschrieben werden (und zwar OHNE LATERAL).
Code:
With x as (select Firma, AuftragNr, KundenNr, ArtikelKZ, ArtikelNr, AuftragsPosition,
count(*) AnzInfoText,
Max(DateInfoText) AnzLastTextDate,
from ordtxt01V),
y as (Select Firma, AuftragNr, KundenNr, ArtikelKZ, ArtikelNr, AuftragsPosition,
Benutzer as AnzInfoUser
Row_Number() Over(Partition By Firma, AuftragNr, KundenNr,
ArtikelKZ, ArtikelNr, AuftragsPosition
Order By DateInfoText Desc) LfdNr
select hdr.nlg as Firma ,
hdr.auftragsnr as auftragsnr,
hdr.kundennr as kundennr,
part.KDNAM1 as Kundenname,
hdr.bestellnr as bestellnr,
hdr.datum_auftrag as datum_auftrag,
hdr.allamount as allamount,
pos.AUFTAGSPOS as auftragsposition ,
pos.artikelkz as artikelkz,
pos.artikelnr as artikelnr,
pos.bezeichnung1 as bezeichnung1,
pos.bestellmenge as bestellmenge,
pos.waehrung as waehrung,
case when pos.waehrung = 'EUR' then bruttopreiseur
when pos.waehrung <> 'EUR' then bruttopreis end as Bruttopreis,
case when pos.waehrung = 'EUR' then poswerteur
when pos.waehrung <> 'EUR' then poswert end as poswert,
AnzInfoText,
AnzInfoUser,
AnzLastTextDate
from wbordoh02v hdr join wbordop01v pos on hdr.AUFTRAGSNR = pos.AUFTRAGSNR
join x on hdr.nlg = x.FIRMA
and hdr.auftragsnr = x.AUFTRAGNR
and hdr.kundennr = x.KUNDENNR
and pos.artikelkz = x.ARTIKELKZ
and pos.artikelnr = x.ARTIKELNUMMER
and pos.AUFTAGSPOS = x.AUFTRAGPOSITION
join y on hdr.nlg = y.FIRMA
and hdr.auftragsnr = y.AUFTRAGNR
and hdr.kundennr = y.KUNDENNR
and pos.artikelkz = y.ARTIKELKZ
and pos.artikelnr = y.ARTIKELNUMMER
and pos.AUFTAGSPOS = y.AUFTRAGPOSITION
and y.LfdNr = 1;
Birgitta
Similar Threads
-
By TheDevil in forum IBM i Hauptforum
Antworten: 16
Letzter Beitrag: 07-11-19, 11:52
-
By pk50226 in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 23-08-17, 11:12
-
By woodstock99 in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 22-03-16, 07:40
-
By Twinkie in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 14-12-15, 11:23
-
By Chris.jan in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 26-07-15, 05:13
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