-
SQL - Datum (8,0) drehen und abfragen
Hallo *all,
ich habe folgendes Problem :
Datei mit einem numerischen Feld 8,0 mit einem Datum ttmmjjjj als Inhalt.
Jetzt möchte ich das Datum in einem Select drehen und in der Where-Klausel abfragen.
Ist so etwas Möglich, und wenn ja wie ?
Probiert habe ich es bereits so :
select SUBSTR(DIGITS(PAUSTRITT), 5, 4) CONCAT
SUBSTR(DIGITS(PAUSTRITT), 3, 2) CONCAT SUBSTR(DIGITS(PAUSTRITT), 1,
2) AS AUSTRITT from hdscw/hansalf1 where austritt > '00000000'
Für eine Idee bin ich sehr dankbar !!
Peter
Viele Grüsse
Peter
-
Code:
select * from
( select SUBSTR(DIGITS(PAUSTRITT), 5, 4) CONCAT
SUBSTR(DIGITS(PAUSTRITT), 3, 2) CONCAT
SUBSTR(DIGITS(PAUSTRITT), 1, 2)
AS AUSTRITT from hdscw/hansalf1) x
where austritt > '00000000'
-
Hallo,
leider funktioniert der SQL so nicht.
Fehlermeldung :
Spalte Austritt nicht in Tabelle...
Noch 'ne Idee ?
Gruß
Peter
Viele Grüsse
Peter
-
Sorry,
Tippfehler meinerseits, funktioniert natürlich prima!!
Vielen Dank
Peter
Viele Grüsse
Peter
-
Dies ist natürlich so möglich, aber nicht performant, da man erst eine Ergebnistabelle erstellt, die dann abgefragt wird.
Besser ist, den Ausdruck in der WHERE-Bedingung anzugeben (man kann auch Berechnungen abfragen):
select * from hdscw/hansalf1
where SUBSTR(DIGITS(PAUSTRITT), 5, 4) CONCAT SUBSTR(DIGITS(PAUSTRITT), 3, 2) CONCAT SUBSTR(DIGITS(PAUSTRITT), 1, 2) > '00000000'
[Dieser Beitrag wurde von Fuerchau am 02. Mai 2003 editiert.]
-
Nochmals vielen Dank, man lernt ja irgendwie nie aus :-))
Viele Grüsse
Peter
-
Hallo,
nur um falschem verständnis vorzubeugen:
1. SQL handelt per Definition Ergebnismengen orientiert und der Optimizer des Datenbank Management Systems entscheidet, wie eine Abfrage ausgeführt wird. Welche Form eines Queries schneller ist, sagt höchstens was über die Qualität des Optimizers aus.
2. Die angeblich bessere Formulierung mit der Operation im Select ist
keineswegs so gut, wie der Autor meint, hier wird das Datum zweimal verzwazzelt, im SELECT und in der WHERE Klausel.
Wenn schon, dann:
select SUBSTR(DIGITS(PAUSTRITT), 5, 4) CONCAT
SUBSTR(DIGITS(PAUSTRITT), 3, 2) CONCAT SUBSTR(DIGITS(PAUSTRITT), 1,
2) from hdscw/hansalf1 where paustritt > xyz
und bei xyz den verdrehten Abfragewert hinschreiben. Wenn der variabel ist kann man das auch mit SQL bewerkstelligen:
dec(substr(...) concat ...)
3. der Original Versuch ging übrigens nicht, weil die WHERE Klausel vor der SELECT Klausel ausgeführt wird und deshalb die dort benannten Felder noch nicht bekannt sind.
mfg
Dieter Bender
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von Fuerchau:
Dies ist natürlich so möglich, aber nicht performant, da man erst eine Ergebnistabelle erstellt, die dann abgefragt wird.
Besser ist, den Ausdruck in der WHERE-Bedingung anzugeben (man kann auch Berechnungen abfragen):
select * from hdscw/hansalf1
where SUBSTR(DIGITS(PAUSTRITT), 5, 4) CONCAT SUBSTR(DIGITS(PAUSTRITT), 3, 2) CONCAT SUBSTR(DIGITS(PAUSTRITT), 1, 2) > '00000000'
[Dieser Beitrag wurde von Fuerchau am 02. Mai 2003 editiert.][/quote]
-
@dieter
Wie du in der ursprünglichen Frage sehen kannst, steht das Datum in der Form TTMMJJJJ zur Verfügung, so dass ich mit dem umgedrehten Wert die Abfrage ausführen muss.
Wenn ich also PAUSTRITT direkt abfrage, habe ich das Problem, dass ich sinnvoll nur auf = abfragen kann.
Deshalb ist es besser, im Where den Ausdruck abzufragen an Stelle des Feldes.
Wenn ich PAUSTRITT allerdings in der umgedrehten Form auch als Ergebnis benötige, dann sollte ich natürlich so wie rmittag abfragen.
Similar Threads
-
By steven_r in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 04-12-06, 12:16
-
By I0N in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-11-06, 12:44
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 20-11-06, 18:37
-
By behmer in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 03-08-06, 09:53
-
By jakarto in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 17-02-06, 17:37
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