-
Sql Abfrage
Hallo,
ich wieder 
Habe eine Datei, wo ich analysieren will welche Einträge schon lange nicht mehr in Verwendung sind(User dürfen individuell Infotexte anlegen).
In der Datei stehen 3 Felder (die sich im Programm zu einem Key zusammensetzen W1FINR, W1ART#, W1LFD#).
Die Datei ist auch mit dem Eintragungsdatum versehen.
Wie formuliere ich ein SqlStatement, wo mir der letzt Stempelung des Eintrag bzw./und Häufigkeit der Buchung sehe?
Habe da mit Group by herumgedoktert, mit dem ich auf Kriegsfuß stehe, aber die Häufigkeit und letzten Stempelung bin ich kläglich gescheitert.
SELECT W1FINR, W1ART#, W1LFD#, W1STMP, count(*)
FROM L1ART1 WHERE W1STMP > 20120101
GROUP BY W1FINR, W1ART#, W1LFD#, W1STMP
ORDER BY W1FINR, W1ART#, W1LFD#, W1STMP
Gruß
Tarki
-
Mir ist jetzt nicht ganz klar, ob Du mehrere Sätze mit der letzten Zeitmarke haben kannst und nur diese willst, oder ob Du alle Einträge abzählen und die letzte Zeitmarke zusätzlich ausgeben willst.
Im zweiten Fall würde das dann so ausseheh:
Code:
SELECT W1FINR, W1ART#, W1LFD#, Max(W1STMP), count(*)
FROM L1ART1 WHERE W1STMP > 20120101
GROUP BY W1FINR, W1ART#, W1LFD#
ORDER BY W1FINR, W1ART#, W1LFD#;
Birgitta
-
W1FINR, W1ART#, W1LFD# wird zu einer Eindeutigen Zahl zusammengefügt und man kann danach Texte auf diese Nummer erfassen.
Da zu ein und er selben Nummer mehrere Mitarbeiter Texte erfassen können, hätte ich da gerne die älteren Texte gelistet und nachgesehen ob die überhaupt noch aktuell sind.
Kann man die W1FINR, W1ART#, W1LFD# in einen Distinct Befehl zusammenfassen?
Wünsche noch ein schönes Weekend.
lg
-
 Zitat von tarkusch
W1FINR, W1ART#, W1LFD# wird zu einer Eindeutigen Zahl zusammengefügt und man kann danach Texte auf diese Nummer erfassen.
Da zu ein und er selben Nummer mehrere Mitarbeiter Texte erfassen können, hätte ich da gerne die älteren Texte gelistet und nachgesehen ob die überhaupt noch aktuell sind.
Kann man die W1FINR, W1ART#, W1LFD# in einen Distinct Befehl zusammenfassen?
Wünsche noch ein schönes Weekend.
lg
Hallo liebes Forum,
habe Versucht noch aus 2 anderen Dateien Felder dazuzu mergen, aber er merkert mir die ganze Zeit an, das W1FINR(Spalte W1FINR oder Ausdruck in SELECT-Liste nicht gültig). habe aber alle Felder bei Group by und Order by auch angegeben.
Dank im Voraus
Tarki
-
Vielleicht hilft dir ja das weiter:
Code:
Select W1FINR || W1ART# || W1LFD# SP_NEU
FROM L1ART1 WHERE W1STMP > 20120101
GROUP BY W1FINR || W1ART# || W1LFD#
ORDER BY SP_NEU;
Bzw. wenn du Hilfe zu deinem Statement brauchst, dann poste uns das aktuelle bitte.
lg Andreas
-
Hallo Andreas,
das wäre auch ein toller Ansatz für mein Problem.
Kann ich mir eigentlich beim Caten die führenden nullen auch anzeigen lassen?
Lg
Tarki
-
Für führende Nullen gibt es viele Möglichkeiten.
Das wäre eine davon:
Code:
Select right('0000000000' || char(W1FINR), 10) || W1ART# || W1LFD# SP_NEU
FROM L1ART1 WHERE W1STMP > 20120101
GROUP BY right('0000000000' || char(W1FINR), 10) || W1ART# || W1LFD#
ORDER BY SP_NEU;
lg
-
 Zitat von andreaspr@aon.at
Für führende Nullen gibt es viele Möglichkeiten.
Das wäre eine davon:
Code:
Select right('0000000000' || char(W1FINR), 10) || W1ART# || W1LFD# SP_NEU
FROM L1ART1 WHERE W1STMP > 20120101
GROUP BY right('0000000000' || char(W1FINR), 10) || W1ART# || W1LFD#
ORDER BY SP_NEU;
lg
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
-
Danke für eure Lösungen.
Frau Hauser,
Sie hatten mal alle möglichen Datumextraktionen gepostet, die ich leider momentan nicht auf anhieb hier finde.
Was ist eigentlich der eleganteste Weg um das 1.Datum im Jahr zu ermitteln(20120101).
Soll ich da wieder mit einer DS arbeiten oder geht das auch über ein BIF?
Danke
-
Soweit ich weis, ist das erste Datum im Jahr immer der 01.01. 
Einfach die Jahreszahl dahinter und fertig 
Oder was ???
Der ILEMax
-
 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 ...
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