Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.434 Beiträge
 
Delphi 7 Professional
 
#14

AW: Zwei Tabellen verknüpfen und summieren aber mit NULLs

  Alt 22. Nov 2023, 11:36
so?
SQL-Code:
select
  pu.KASSENABSCHLUSS_NR,
  sum(case
        when p.GV_TYP = 11 then pu.POS_BRUTTO -- 3. Oder falls es solche gibt die Summe dieser
        else Null -- 2. Die enthält entweder Null, wenn es keine Belege mit einer Belegpos für die GV_TYP = 11 gibt
      end
     ) as Summe
from
(
  select
    KASSENABSCHLUSS_NR,
    BON_ID,
    POS_BRUTTO
  from KASSE_BONPOS_UST
  where pu.Z_KASSE_ID = 'MeineKasse-- 0. Wir wollen nur diese Kasse auswerten, hier dürfte das Ergebnis genau ein Datensatz sein.
) pu
left join KASSE_BONPOS p
  on (pu.KASSENABSCHLUSS_NR = p.KASSENABSCHLUSS_NR) and
     (pu.BON_ID = p.BON_ID)
group by pu.KASSENABSCHLUSS_NR -- 1. Jeweils eine Zeile pro KASSENABSCHLUSS_NR
order by pu.KASSENABSCHLUSS_NR
Das sollte nicht funktionieren, weil das pu. in der Where Klauses da innerhalb des Subselect nicht bekannt ist.
Du hast recht, da hab' ich was vergessen wegzumachen (Copy&Paste sollte ich mir abgewöhnen )
SQL-Code:
select
  pu.KASSENABSCHLUSS_NR,
  sum(case
        when p.GV_TYP = 11 then pu.POS_BRUTTO -- 3. Oder falls es solche gibt die Summe dieser
        else Null -- 2. Die enthält entweder Null, wenn es keine Belege mit einer Belegpos für die GV_TYP = 11 gibt
      end
     ) as Summe
from
(
  select
    KASSENABSCHLUSS_NR,
    BON_ID,
    POS_BRUTTO
  from KASSE_BONPOS_UST
  where Z_KASSE_ID = 'MeineKasse-- 0. Wir wollen nur diese Kasse auswerten, hier dürfte das Ergebnis genau ein Datensatz sein.
) pu
left join KASSE_BONPOS p
  on (pu.KASSENABSCHLUSS_NR = p.KASSENABSCHLUSS_NR) and
     (pu.BON_ID = p.BON_ID)
group by pu.KASSENABSCHLUSS_NR -- 1. Jeweils eine Zeile pro KASSENABSCHLUSS_NR
order by pu.KASSENABSCHLUSS_NR
So besser?
  Mit Zitat antworten Zitat