Einzelnen Beitrag anzeigen

webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Firebird SQL Abfrage Berechnung

  Alt 18. Mär 2006, 16:43
SQL-Code:
select T1.GRUPPE1, sum(T2.TEILWERT) as SUM_TEILWERT, T1.GRUPPE1 - sum(T2.TEILWERT) from TABELLE1 T1
inner join TABELLE2 T2 on (T2.TABELLE1_ID = T1.ID)
where T2.GRUPPE = 1
group by T1.Gruppe1
für jede Gruppe zu ändern.

Eigentlich ist da ein Fehler in Deinem DB-Design, wie ich meine. Wenn Ich nachher Zeit habe schaue ich mal drauf.
Ansonsten kannst Du das Ergebnis nur mit einer SP erreichen:
SQL-Code:
CREATE PROCEDURE NEW_PROCEDURE
RETURNS (
    GRUPPE VARCHAR(10),
    TEILWERT BIGINT,
    RESTWERT BIGINT)
AS
BEGIN
  GRUPPE = 'Gruppe 1';
  select sum(T2.TEILWERT) as SUM_TEILWERT, T1.GRUPPE1 - sum(T2.TEILWERT) from TABELLE1 T1
    inner join TABELLE2 T2 on (T2.TABELLE1_ID = T1.ID)
    where T2.GRUPPE = 1
    group by T1.Gruppe1
    INTO :TEILWERT, :RESTWERT;
  SUSPEND;
  GRUPPE = 'Gruppe 2';
  select sum(T2.TEILWERT) as SUM_TEILWERT, T1.GRUPPE2 - sum(T2.TEILWERT) from TABELLE1 T1
    inner join TABELLE2 T2 on (T2.TABELLE1_ID = T1.ID)
    where T2.GRUPPE = 2
    group by T1.Gruppe2
    INTO :TEILWERT, :RESTWERT;
  SUSPEND;
  GRUPPE = 'Gruppe 3';
  select sum(T2.TEILWERT) as SUM_TEILWERT, T1.GRUPPE3 - sum(T2.TEILWERT) from TABELLE1 T1
    inner join TABELLE2 T2 on (T2.TABELLE1_ID = T1.ID)
    where T2.GRUPPE = 3
    group by T1.Gruppe3
    INTO :TEILWERT, :RESTWERT;
  SUSPEND;
END
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat