AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie Umsatz pro ID und MasterID ermitten?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Umsatz pro ID und MasterID ermitten?

Ein Thema von BlueStarHH · begonnen am 21. Mär 2007 · letzter Beitrag vom 21. Mär 2007
Antwort Antwort
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 10:08
Datenbank: Paradox/Firebird • Zugriff über: TQuery, TIBQuery
Hallo,

ich habe eine Tabelle wie unten dargestellt mit 3 Spalten ID, MasterID und Umsatz. Ich möchte nun die Summe des Umsatzes für jede ID haben. Wo jedoch eine MasterID vergeben ist, soll die MasterID verwendet werden, und nicht die ID in der Spalte ID. Wo die Master ID also vergeben ist, ist die Spalte ID irrelevant.

SQL-Code:
ID MasterID Umsatz
1 null 10,20
1 null 10,30
2 null 5,70
2 null 1,30
5 3 1,40
6 3 2,40
7 4 7,99
8 2 5,00
Das soll das Ergebnis sein. Die Werte in den Klammern dienen nur zum Verständnis. Die sollen natürlich nicht in der Tabelle sein:

SQL-Code:
ID Umsatz
1 20,50 (= 10,20 + 10,30)
2 12,00 (= 5,70 + 1,30 + 5,00)
3 3,80 (= 1,40 + 2,40)
4 7,99 (= 7,99)

Wie sieht der SQL-Ausdruck dazu aus? Ist dazu überhaupt ein SQL-Ausdruck möglich?

Wenn man die Spalte MasterID nicht hätte, würde man das ja so machen:
SQL-Code:
select ID, sum(Umsatz) from Tabelle
group by ID
Wie die MasterID da nun aber untergebracht werden muss, weiß ich leider nicht. Danke!

Momentan wird Paradox verwendet. In einigen Woche soll aber auf Firebird umgestellt werden. Daher kann die Lösung für Paradox oder Firebird sein.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 10:14
Für FB ist das kein Problem, wenn man CASE oder IIF verwendet.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 10:58
Hi,

das sieht dann so aus:

SQL-Code:
select
 case
   when master_id is null then
     id
   else
     master_id
 end as ID
 , sum(umsatz) from tabelle
group by
 case
   when master_id is null then
     id
   else
     master_id
 end
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 10:59
Edit: OK, ich sehe dataspider hat knapp vor mir gepostet.

Zitat von mkinzler:
Für FB ist das kein Problem, wenn man CASE oder IIF verwendet.
Ich hab noch nie mit CASE oder IIF gearbeitet. IFF von Firbird 1.5 auch nicht unterstützt zu werden. Ich habe mal eine Lösung mit CASE probiert:

SQL-Code:
select
  CASE
    WHEN masterid IS NULL THEN ID
  ELSE
    masterid
  END as XID, sum(Umsatz)
from ATable
group by XID
Hier kommt folgende Fehlermeldung:

Zitat:
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
XID.
At line 8, column 10.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 11:01
Antwort siehe Posting über deinem...

ab FB2 wird - glaube ich - die Verwendung von Aliasnamen bei group by unterstützt.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 11:02
IIF wird erst ab FB2 unterstützt.
Markus Kinzler
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 11:05
Hi dataspider,

danke für den Code. Doch da stimmt irgendwas nicht. Der Wert zur ID 2 ist zu hoch:

SQL-Code:
ID   SUM
1   20,40
2   16,40
3    3,80
4    7,99
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 11:09
... ich habe deine Zahlen genommen und erhalte 12,00 für ID 2.
Miniaturansicht angehängter Grafiken
ergebnis_141.jpg  
Frank Reim
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Wie Umsatz pro ID und MasterID ermitten?

  Alt 21. Mär 2007, 11:21
OK, danke klappt nun. Ich hab den IB-Expert nochmal neu gestartet und nun stimmen die Zahlen. Wahr wohl ein vergessenes Commit oder ähnliches...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz