-
Und hinter dem letzten "AUF" ist das Komma auch zu viel.
-
Ich stehe da voll auf den Schlauch.
Wo gebe ich die Datei an oder muss ich über das Statement noch was darüberlegen?
-
Deine Datei wird immer nach dem From angegeben, so ist das bei SQL.
Mittels "from (...) Name" kreirst du eine sog. "derived Table", also ein Zwischenergebnis.
Innerhalb der Klammern kodierst du also einen ganz normalen Select mit Feldbenamung für berechnete Felder, so dass du im übergeordneten Select diese Felder verwenden kannst.
select f1, f2, ...
from (
select aa as f1, bb as f2 ...
from MyTable
) NewName
jetzt kommt es noch darauf an, was du mit dem ganzen machen willst.
Einfacher ist es wirklich ohne derived Table, wenn die Felder nur 1 Mal benötig werden:
select sum( STD * (STS - STS / 100.00 * RAB + AUF / 100.00 * AUF) )
from MyFile
Je nachdem wie dein Rabatt oder Aufschlag wirken soll, musst du halt deine Klammern setzen. Einen Case sehe ich da i.M. gar nicht.
-
Hat toll geklappt.
Eine letzte Frage noch für Heute :
Wieso bekomme ich bei diesem Statement eigentlich 4 Nachkommastellen angezeigt, obwohl ich alles mit 7, 2 angegeben habe?
Code:
SELECT Sum(STD * (STS - decimal(STS / 100.00 * RAB, 7,
2) + decimal(STS / 100.00 * AUF, 7, 2) )) FROM FILE
Gruß
Tarki
-
Du castest ja nur die Zwischenergebnisse und nicht das Endergebnis.
Lass die Zwischencasts mal weg und caste das Endergebnis:
decimal(sum ....., 11, 2)
Berücksichtige dazu das max. mögliche Ergebnis um einen Überlauf auszuschließen.
Dazu kommt noch, wie deine sonstigen Programme noch runden, also auf welchem Zwischenergebnis.
Gerade bei Prozenten kann das nicht so unerheblich werden.
SQL stellt dir die Funktion ROUND(Wert, Stellen) zur Verfügung.
Dann kannst du das casten ganz sein lassen, da dies nur zum Abschneiden des Wertes führt, Beispiel:
round(STS / 100.00 * RAB, 2)
sum(round(....., 2))
round(sum(....), 2)
Je nach Ziel des Ergebnisses.
-
 Zitat von Fuerchau
Du castest ja nur die Zwischenergebnisse und nicht das Endergebnis.
Lass die Zwischencasts mal weg und caste das Endergebnis:
decimal(sum ....., 11, 2)
Berücksichtige dazu das max. mögliche Ergebnis um einen Überlauf auszuschließen.
Dazu kommt noch, wie deine sonstigen Programme noch runden, also auf welchem Zwischenergebnis.
Gerade bei Prozenten kann das nicht so unerheblich werden.
SQL stellt dir die Funktion ROUND(Wert, Stellen) zur Verfügung.
Dann kannst du das casten ganz sein lassen, da dies nur zum Abschneiden des Wertes führt, Beispiel:
round(STS / 100.00 * RAB, 2)
sum(round(....., 2))
round(sum(....), 2)
Je nach Ziel des Ergebnisses.
Habe mich für die Varaiante decimal(sum ....., 11, 2) entschieden.
Das mit round(sum(....), 2) hat auf Anhieb nicht geklappt, aber das probiere ich später noch aus.
Gruß und Dank
Tarki
-
die Funktion Round steht dir dann ggf. noch nicht zur Verfügung.
Ich glaube, die gibts erst ab V5R4.
Solange du keine negativen Werte erzielst reicht dir ja erst mal ein
decimal(sum(....) + 0.005, 11, 2)
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
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