-
Wie gesagt, in Query/400 gibt's auch Aggregatfunktionen und Gruppenwechsel.
-
Im Query/400 aber ungleich schwieriger, da man ja hier nur die Gruppensummen haben will.
Und wenn ich das Ergebnis auch noch in einem Programm haben will, nehm ich doch lieber gleich embedded SQL.
-
wie kommen die anderen Felder hinzu
Hallo,
select ETNummer, max(Bestelldatum) as Bestelldatum
from MyFile
group by ETNummer
funktionietr mit den beiden Spalten, wie bekomme ich die anderen hinzu ?
DANKE im voraus ERIC
-
Willst du weiter Spalten angezeigt bekommen, musst du diese entweder mit einer Aggregationsfunktion angeben (z.B. Min(sp1), Max(sp1), Avg(sp1), ...) oder wenn du sie nur so angeben willst, musst du sie zumindest in der Group By-Klausel angeben.
Allerdings ändert sich dann auch die Ergebnistabelle entsprechend.
Falls du nur alle Datensätze angezeigt bekommen willst und die Spalte Bestelldatum das Maximun zeigen soll, du aber keine Aggregationen haben willst kannst du auch Subselects verwenden.
Code:
Select Tab1.*, (Select Max(Bestelldatum) From Tab1) Bestelldatum From Tab1
-
DANKE
Hallo, vielen Dank für die Info, mit den group by auf andere Spalten kommen dann wieder alle
Zeilen, mach den MAX fast wirkungslos.
Select Tab1.*, (Select Max(Bestelldatum) From Tab1) Bestelldatum From Tab1
damit setzt er mir eine Spalte hinten an, da steht immer das gleiche Datum, als das höchste Datum drin !
Bitte nochmals um Hilfe, vielen Dank ERIC
-
Select a.*, (Select Max(b.Bestelldatum) From Tab1 b where a.ETNummer = b.ETNummer) Bestelldatum From Tab1 a
-
... also ich würde eine Common Table Expression vorziehen oder wenn schon SubSelect diesen in die From-Anweisung packen:
1. Common Table Expression
Code:
With x as (Select ETNummer, Max(BestellDatum) MaxDat
From Tab1
Group By ETNummer)
Select a.*
from x join Tab1 a on a.ETNummer = x.ETNummer and BestellDatum = MaxDat
;;
2. Sub-Select in From-Anweisung
Code:
Select a.*
From (Select EtNummer, Max(BestellDatum) MaxDat
From Tab1
Group By EtNummer) x
join Tab1 a on a.ETNummer = x.ETNummer and BestellDatum = MaxDat;
Birgitta
-
VIELEN DANK, aber ich kriegs nicht zum laufen
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
-
 Zitat von Eric
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
-
DANKE
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
-
Also auf unserer V5R4 Maschine bringen die folgenden beiden Abfragen das gewünschte Ergebnis:
Code:
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
Code:
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
-
VIELEN DANK
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
Similar Threads
-
By cimbala in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 10-05-10, 07:51
-
By mack1964 in forum NEWSboard Drucker
Antworten: 2
Letzter Beitrag: 25-02-08, 12:36
-
By RLurati in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 27-10-06, 15:13
-
By ExAzubi in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 18-07-06, 09:31
-
By Muchi in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 28-11-05, 11:25
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