-
 Zitat von B.Hauser
Sofern man die Feldlänge nicht verändern möchte, d.h. nur ein 8-stelliges numerisches Feld mit 8-Zeichen incl. den führenden Nullen anzeigen möchste, ist die Funktion DIGITS eleganter:
Code:
Select Digits(NumFld) concat Digits(NextNum) concat X ...
Anstatt der double pipe (||) würde ich empfehlen immer CONCAT anzugeben. Die double pipe wird nicht in allen Umgebungen unterstützt, d.h. manchmal muss man stattdessen ein doppeltes Ausrufezeichen (!!) angeben.
Birgitta
Hallo Brigitta,
mein Problem mit dem Sql-Problem besteht noch immer.
ich habe mal die num. Werte gecatet(FINR_ART_LFD).
Aber besteht die Möglichkeit das ich mehrere Felder(FILEA.W1FINR, FILEA.W1ART#, FILEA.W1LFD#,
FILEB.W1FNR, FILEA.W2TX1, FILEA.W2TX2,
FILEB.W1TX1, FILEB.W1TX2) in ein Distinct zusammenfassen kann, sodass mir keine doppelten Sätze angezeigt werden?
Mein SqlStatement:
SELECT
Digits(FILEA.W1FINR) CONCAT Digits(FILEA.W1ART#) CONCAT
Digits(FILEA.W1LFD#) as FINR_ART_LFD,
FILEB.W1FNR, FILEA.W2TX1, FILEA.W2TX2,
FILEB.W1TX1, FILEB.W1TX2, MIN(FILEB.W1STMP), count(*)
FROM FILEA, FILEB
WHERE
FILEA.W1FINR = FILEB.W1GNR AND FILEA.W1ART# = FILEB.W1TNR
AND FILEA.W1LFD# = FILEB.W1ZNR AND FILEB.W1STMP > 20120101
Group by
FILEA.W1FINR, FILEA.W1ART#, FILEA.W1LFD#,
FILEB.W1FNR, FILEA.W2TX1, FILEA.W2TX2,
FILEB.W1TX1, FILEB.W1TX2, FILEB.W1STMP
Order by
FILEA.W1FINR, FILEA.W1ART#, FILEA.W1LFD#,
FILEB.W1FNR, FILEA.W2TX1, FILEA.W2TX2,
FILEB.W1TX1, FILEB.W1TX2, FILEB.W1STMP
Dank im Voraus und Gruß
TARKI
-
Die Syntax wäre folgende:
select ...
from (select distinct ... from myfile where ...)
group by ...
order by ...
-
Hallo Herr Fuerchau,
habe alle erdenklich Varianten probiert bekomme aber das von Ihnen angegeben Statement nicht gebacken bekommen.
Könnten Sie mir anhand nur einiger weniger Felder ein Beispiel anführen?
Danke
-
 Zitat von Fuerchau
Die Syntax wäre folgende:
select ...
from (select distinct ... from myfile where ...)
group by ...
order by ...
Da verschachtelte Sub-Selects schnell unübersichtlich werden, würde ich lieber common table expressions (CTE) verwenden:
Code:
With x as (Select Distinct (oder was sonst auch immer)
From ...
Where ....)
Select ....
From x (join Tabellen/Views sofern erforderlich)
Where ...
;
Eine Anmerkung zum Group By:
In der Group By-Anweisung müssen alle Spalten aufgelistet werden, bei denen keine Aggreagat-Funktion (z.B. Count, Sum) verwendet wurde. Handelt es sich bei einer solchen Spalte um einen Ausdruck (z.B. verkettete oder berechnete Werte), so muss der komplette Ausdruck in der Group By-Anweisung wiederholt werden.
Es sei den man verwendet ein verschachteltes Sub-Select oder eine CTE in der die Spalten definiert sind.
Birgitta
Similar Threads
-
By AS400-Anfänger in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 27-06-06, 13:18
-
By behmer in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 29-05-06, 12:52
-
By steven_r in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 17-05-06, 15:49
-
By cbe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-06-05, 16:21
-
By juergenkemeter in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 17-11-04, 14:32
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