PDA

View Full Version : ET-NUMMER, LETZES BESTELLDATUM



Seiten : 1 2 [3]

B.Hauser
23-05-11, 16:52
Hallo, das krieg ich irgendwie nicht hin,

meine Tabelle zum Testen habe ich TAB1 genannt, es sind folgende Felder vorhanden :
ETNUM, BLDAT, TEXT, PREIS (bei der wirklichen Tabelle existieren noch mehr Felder).

es soll von jeder ATNUM der Satz mit dem höchsten Wert in BLDAT angezeigt werden :

'select etnum, max(bldat) from tab1 group by etnum' das zeigt mir die richtigen Daten an, leider auch nur die angegebenen Felder !

Bitte nochmals um Hilfe, vielen Dank ERIC

Tipp doch einfach Baldurs oder meine Beispiele ab!
Und übersetz' notfalls die verwendeten Dummy-Feldnamen durch Deine eigenen.

Birgitta

Eric
23-05-11, 17:13
Hallo, hab folgendes probiert :

Select a.*,
(Select Max(b.etnum) From Tab1 b
where a.etnum = b.etnum) etnum1
From Tab1 a

damit "baut" er das Feld etnum1 hinten ran und zeigt alle Zeilen an

Select a.*
From (Select etnum, Max(bldat)
From Tab1
Group By etnum) x
join Tab1 a on a.etnum = x.etnum

hier stösst er sich an dem (select etnum ...

With x as (Select etnum, Max(bldat)
From Tab1
Group By etnum)
Select a.*
from x join Tab1 a on a.etnum = x.etnum

hier meckert er bei dem with rum.

Was mache ich falsch ? DANKE ERIC

B.Hauser
23-05-11, 18:04
Also auf unserer V5R4 Maschine bringen die folgenden beiden Abfragen das gewünschte Ergebnis:


with x as (select etnum, max(etdat) etdat
from tab1
group by etNum)
select a.*
from x join tab1 a
on a.etnum = x.etnum and a.etdat = x.etdat



select a.*
from (select etnum, max(etdat) etdat
from tab1
group by etNum) x
join tab1 a on a.etnum = x.etnum
and a.etdat = x.etdat


In den Beispielen von gestern hat die Verknüpfung über das Datum gefehlt. Die Abfragen hätten jedoch anstandslos ausgeführt werden müssen (zumindest tun sie das auf meinem System). Im Ergebnis wären jedoch alle Sätze angezeigt worden.

Mit welchem Release und mit welchem Tool arbeitest Du?

Birgitta

Eric
23-05-11, 19:29
:)
Hallo und vielen Dank,

Tabelle zum Test habe ich wie folgt erstellt (Maschine PUB1.RZ..)

CREATE TABLE LIB/TAB1 (ETNUM INT NOT NULL WITH DEFAULT, BLDAT
DEC ( 8, 0) NOT NULL WITH DEFAULT, TEXT CHAR (50 ) NOT NULL WITH
DEFAULT, PREIS DEC ( 8, 2) NOT NULL WITH DEFAULT)

dann z.B. mit :

INSERT INTO LIB/TAB1 (ETNUM, BLDAT, TEXT, PREIS) VALUES(10003,
20110101, 'SCHEIBE', 60)

die "DATEN" eingefügt.

vorher :

===> EDTLIBL ... LIB in Bibliotheksliste eingetragen

jetzt mit strsql :

select a.*
from (select etnum, max(bldat) bldat
from tab1
group by etNum) x
join tab1 a on a.etnum = x.etnum
and a.bldat = x.bldat

und

ETNUM BLDAT TEXT PREIS
10.000 20.110.301 SCHRAUBE 102,00
10.001 20.110.301 MUTTER 60,00
10.002 20.110.301 FEDERRING 40,00
10.003 20.110.301 SCHEIBE 75,00
***** Datenende ********

DANKE, dass läuft !!!!!
ERIC

Eric
23-05-11, 19:32
Hallo, fast vergessen, einiges habe ich mit dem SQL-Teacher probiert !

welches Release pub.rz.. hat, V5R3

DANKE NOCHMAL ERIC

holgerscherer
23-05-11, 20:59
Tabelle zum Test habe ich wie folgt erstellt (Maschine PUB1.RZ..)

Schön, dass wir gemeinsam helfen konnten ;-) Nicht umsonst nähert sich PUB1 der magischen 16.000

-h

AS400.lehrling
24-05-11, 07:55
Schön, dass wir gemeinsam helfen konnten ;-) Nicht umsonst nähert sich PUB1 der magischen 16.000

-h

:p Sollte ich zuviel beworben haben ?

Gruß AS400.lehrling

Eric
24-05-11, 16:35
Hallo,

die Maschine von H.S. wirbt für sich selbst, eine bessere Umgebung zum testen, lernen und üben kann ich mir nicht vorstellen !

DANKE ERIC