-
SQL Problem
Hallo allerseits,
ich habe ein kleines Problem, welches ich mit einer SQL Abfrage lüsen möchte.
Ich habe eine Lagerbewegungsdatei, in der alle Lagerbewegungen mit Teilenummer, Bewegungsdatum, Bewegungsschlüssel, Menge etc. erfasst sind.
Ziel ist es, für jede Teilenummer das jeweils älteste Bewegungsdatum mit einem bestimmten Bewegungsschlüssel zu finden.
Kann mir da jemand helfen?
Vielen Dank und Gruss
Alexander May
-
Wie wärs damit:
select lbfirm, lbwknr, lbtenr, max(lbdate)
from lgbw
where ... lbbwsl='xx'
group by lbfirm, lbwknr, lbtenr
-
Wie wär's damit
PHP-Code:
Select TeileNr, Max(BewDatum)
From LagBew
Where BewSchl = 'XX'
Group By TeileNr;
Wenn Du jeweils den kompletten Datensatz brauchst, musst Du zusätzlich entweder eine Common Table Expression oder ein Sub-Select verwenden:
PHP-Code:
With x as (Select TeileNr, Max(BewDatum) as MinDat
From LagBew
Where BewSchl = 'XX'
Group By TeileNr)
Select a.*
from x join LagBew a on x.TeileNr = a.TeileNr
and MinDat = a.BewDatum
and a.BewSchl = 'XX'
Birgitta
-
Hallo Ihr Beiden,
vielen Dank, habt mir sehr geholfen, ich stand mal wieder auf der Leitung/Schlauch etc..........
Grüsse
Alexander
-
... wobei man da mehrere Sätze bekommen könnte, wenn es an dem ältesten Datum 2 Bewegungen gab, was einem bei dem Subselect auf die Füße fällt.
Bei den CTEs finde ich die Syntax ein wenig seltsam (wo muss das Ding stehen), die je nach Statement variiert, verschärft dadurch, dass unterschiedliche Datenbanken sich da unterschiedlich darstellen. Deswegen ziehe ich zuweilen einen nested select vor ala:
Select a.*
from (Select TeileNr, Max(BewDatum) as MinDat
From LagBew
Where BewSchl = 'XX'
Group By TeileNr) x
join LagBew a on x.TeileNr = a.TeileNr
and MinDat = a.BewDatum
and a.BewSchl = 'XX'
Zitat von B.Hauser
Wie wär's damit
PHP-Code:
Select TeileNr, Max(BewDatum)
From LagBew
Where BewSchl = 'XX'
Group By TeileNr;
Wenn Du jeweils den kompletten Datensatz brauchst, musst Du zusätzlich entweder eine Common Table Expression oder ein Sub-Select verwenden:
PHP-Code:
With x as (Select TeileNr, Max(BewDatum) as MinDat
From LagBew
Where BewSchl = 'XX'
Group By TeileNr)
Select a.*
from x join LagBew a on x.TeileNr = a.TeileNr
and MinDat = a.BewDatum
and a.BewSchl = 'XX'
Birgitta
-
CTEs sind doch ganz einfach:
- Das sind temporäre Views, die nur für das aktuelle Statement gelten, die vor dem eigentlichen Select-Statement angegeben werden müssen.
- Werden mehrere CTEs verwendet, werden diese einfach durch Kommata getrennt aufgelistet.
Ich vermeide Sub-Selects soweit möglich, einfach aus dem Grund spätestenfalls wenn man das 3. Sub-Select verschachtelt, ist die Anweisung nicht mehr lesbar.
... im richtigen Leben hätte man statt den verschachtelten Sub-Selects oder den Common-Table-Expressions entsprechende Views, die eingesetzt werden. Und schwupp entspricht die Abfrage dem endgültigen Select-Statement in der Variante mit CTEs.
Birgitta
Similar Threads
-
By Stefan_Sk in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 26-05-06, 16:37
-
By Lucky4712 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-05-06, 15:57
-
By cbe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-06-05, 16:21
-
By itec01 in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 16-09-04, 18:38
-
By rebe in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 07-09-01, 13:55
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