-
SQL Summenbildung abhängig von einem Kennzeichen
Hallo Forum!
Wir haben hier in einer Datenbank folgendes Problem:
Es gibt keine Vorzeichen bei unseren Rechnungsbeträgen. Das bedeutet es gibt ein Gutschriftskennzeichen (KZGUT => Values 'J' , 'N') . Nun kann man dadurch eben nicht mal schnell mit SUM(RECHNUNUNGSBETRAG) eine Übersicht pro Tag oder Monat o.ä. fahren. (da eben alle Beträge positiv sind - auch die Gutschriften)
Wir könnte man das Gutschriftskennzeichen (Gutschrift kann 'J' oder 'N' sein) mit abfragen um eine korrekte Summenbildung zu bilden? Das Ergebnis soll aber bitte in EINER Summe angezeigt werden - also nicht den GROUP auch auf das Gutschriftskennzeichen ausdehnen.
SQL bisher:
SELECT 'RECHNUNGSBETRAG',
day(rechdat) , sum(WAWERTBT) FROM rechkopf WHERE
month(RECHDAT) = 04 and year(rechdat) = 2004 GROUP BY day(rechdat)
Danke für die Hilfe.
Dirk
-
 Zitat von cicero22
Hallo Forum!
Wir haben hier in einer Datenbank folgendes Problem:
Es gibt keine Vorzeichen bei unseren Rechnungsbeträgen. Das bedeutet es gibt ein Gutschriftskennzeichen (KZGUT => Values 'J' , 'N') . Nun kann man dadurch eben nicht mal schnell mit SUM(RECHNUNUNGSBETRAG) eine Übersicht pro Tag oder Monat o.ä. fahren. (da eben alle Beträge positiv sind - auch die Gutschriften)
Wir könnte man das Gutschriftskennzeichen (Gutschrift kann 'J' oder 'N' sein) mit abfragen um eine korrekte Summenbildung zu bilden? Das Ergebnis soll aber bitte in EINER Summe angezeigt werden - also nicht den GROUP auch auf das Gutschriftskennzeichen ausdehnen.
SQL bisher:
SELECT 'RECHNUNGSBETRAG',
day(rechdat) , sum(WAWERTBT) FROM rechkopf WHERE
month(RECHDAT) = 04 and year(rechdat) = 2004 GROUP BY day(rechdat)
Danke für die Hilfe.
Dirk
Hallo,
das Zauberwort heißt CASE
mfg
Dieter Bender
-
Hi!
Ja - sowas in der Richtung dachte ich mir irgendwie - aber kannst Du VIELLEICHT? noch ein kleines Beispiel dafür abgeben? ....
danke dirk
-
 Zitat von cicero22
Hi!
Ja - sowas in der Richtung dachte ich mir irgendwie - aber kannst Du VIELLEICHT? noch ein kleines Beispiel dafür abgeben? ....
danke dirk
Ich habe gerade keine Möhre oben, also aus dem Gedächtnis:
select sum(u) from hugo
(
SELECT Feld1, Feld2,
CASE
WHEN STORNO = 'Y' THEN (-1) * UMSATZ
WHEN STORNO = 'N' THEN UMSATZ
END as u
) as hugo
group by u
ansonsten ist die SQL Referenz hier hilfreich, für das auffinden des Links zur Referenz gibt es hier im Forum Spezialisten...
mfg
Dieter Bender
-
Case
Hallo Dirk,
versuche mal das folgende:
Code:
SELECT 'RECHNUNGSBETRAG', day(rechdat),
sum(case when MyKZ = 'J'
then WAWERTBT
else WAWERTBT * -1
end)
FROM rechkopf WHERE
WHERE month(RECHDAT) = 04 and year(rechdat) = 2004
GROUP BY day(rechdat)
Birgitta
-
 Zitat von B.Hauser
Hallo Dirk,
versuche mal das folgende:
Code:
SELECT 'RECHNUNGSBETRAG', day(rechdat),
sum(case when MyKZ = 'J'
then WAWERTBT
else WAWERTBT * -1
end)
FROM rechkopf WHERE
WHERE month(RECHDAT) = 04 and year(rechdat) = 2004
GROUP BY day(rechdat)
Birgitta
Super super Stark an alle - vor allem Birgitta hat den Nagel VOLL auf den Kopf gehauen (ausser wir hatten lauter negativ Umsätze - Kennzeichen war falsch - aber das war natürlich eine winzigkeit und nur ein Versehen!)
Danke an Alle!
-
Hallo,
alternativ kann man auch einen JOIN auf eine Hilfsdatei durchführen. Die Hilfsdatei muß zwei Datensätze enthalten, die den Kennzeichen N und J die Werte 1 und -1 zuordnen. Dann kann man einfach ausmultiplizieren.
Das ist nicht unbedingt elegant, kann aber - auch bei Query - sehr hilfreich sein.
Martin
-
 Zitat von Martin
Hallo,
alternativ kann man auch einen JOIN auf eine Hilfsdatei durchführen. Die Hilfsdatei muß zwei Datensätze enthalten, die den Kennzeichen N und J die Werte 1 und -1 zuordnen. Dann kann man einfach ausmultiplizieren.
Das ist nicht unbedingt elegant, kann aber - auch bei Query - sehr hilfreich sein.
Martin
Das ist gar nicht mal so dumm. Wow!
Aber - wer kann mir nochmal ein CASE Beispiel beisteuern!
-
sum(case kzgut when 'J' then ReBetrag else 0 - rebetrag end )
-
 Zitat von Fuerchau
sum(case kzgut when 'J' then ReBetrag else 0 - rebetrag end )
Dir natürlich auch recht herzlichen Dank Fuerchau - war ja die glatte Vorlage zum Tor!
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 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
-
By hzille in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-09-04, 08:49
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