-
Create Index mit Limit 1
Hallo,
ich würde gerne einen Index über eine physische Datei generieren, in der ich mir nur den jeweils aktuellsten Datensatz einer Schlüsselfolge habe wollte.
Beispielsweise:
FIRMA
KUNDE
ARTIKEL
DATUM - absteigend
Da es sich um eine Umsatzdatei handelt, wollte ich nur den aktuellsten Datensatz in der logischen Sicht sehen (Limit=1).
Kann man Limit beim erstellen von create index angeben? M.E. nicht!
-
************ GELÖSCHT ****************
-
Ich muss den Code nochmal schreiben. Ich habe in meiner ersten Antwort mit spitzen Klammern gearbeitet. Dabei hat der Editor einiges verschluckt.
Hallo,
kannst du nicht einfach mit SQL den passenden Satz abgreifen? Den Index würde ich dann nach "firma, kunde, artikel, datum desc" aufbauen.
select * from umsatz where firma=x and kunde=y and artikel=z order by datum desc fetch first row only;
oder, falls du alle aktuellsten verarbeiten willst:
with daten as (
select firma, kunde, artikel, max(datum) as maxDate from umsatz
group by firma, kunde, artikel)
select .* from daten
join umsatz on daten.firma=umsatz.firma and daten.kunde=umsatz.kunde and daten.artikel=umsatz.artikel and daten.maxDate = umsatz.datum;
So müsstest du alle aktuellsten Sätze aus deiner bekommen. Ich gehe mal davon aus, dass ein Artikel nur einmal pro datum vorkommt.
Das Statement kannst du dir auch als View ablegen.
Dieter
-
Hallo Dieter,
danke für Deine Antwort. Sorry, war missverständlich geschrieben von mir.
Mein Problem ist (leider) ein anderes:
ich habe pro Kunde / Artikel mehrere Datensätze mit unterschiedlichem Datum.
Hier ein Beispiel
Kunde |Artikel |Datum
001 | 400 | 01.12.2020
001 | 400 | 15.12.2020
002 | 300 | 03.12.2020
002 | 300 | 19.12.2020
Was ich in einer view benötige ist:
Wann wurde der Artikel eines Kunden zuletzt bestellt.
In diesem Beispiel sollte das Ergebnis 2 Zeilen liefern:
Kunde |Artikel |Datum
001 | 400 | 15.12.2020
002 | 300 | 19.12.2020
Somit ist klar, dass der Kunde 001 den Artikel 400 am 15.12.2020 zuletzt bestellt hat.
Das Ganze wollte ich gerne in so ablegen, damit ein Fremdsystem sich einfach dieser Daten bedienen kann. Eben wie eine Index bzw. logische Datei.
-
Hallo Frank,
meine obige Common Table Expression löst genau dein Problem, denke ich. Du kannst das ganze Statement ("with daten ...") als View ablegen. Da kann dann jeder drauf zugreifen.
-
Ich habe das Statement etwas komplex geschrieben, weil ich dachte, dass du alle Spalten aus deiner Umsatztabelle haben möchtest. Wenn es nur um die Schlüssel geht, ist es viel einfacher:
select firma, kunde, artikel, max(datum) as datum from umsatz
group by firma, kunde, artikel;
Das müsste genau dein gewünschtes Ergebnis liefern.
Mit create view ... kannst du das dann ablegen und jeder kann darauf zugreifen.
-
Hallo Dieter,
herzlichen Dank für deine Unterstützung. Das ist genau das, nachdem ich gesucht habe. Mir war der Syntax und View bzw. Index nicht ganz klar.
Ich habe vergeblich im SQL Handbuch gesucht... (auch noch an der falschen Stelle) :-(
Grüße Frank
Similar Threads
-
By Chris.jan in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 19-07-18, 06:59
-
By malzusrex in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 19-10-16, 18:53
-
By Bobou in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 07-10-16, 07:31
-
By woodstock99 in forum NEWSboard Programmierung
Antworten: 31
Letzter Beitrag: 18-03-15, 13:29
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 06-11-13, 11:44
Tags for this Thread
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