AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zwei Tabellen verknüpfen und summieren aber mit NULLs
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei Tabellen verknüpfen und summieren aber mit NULLs

Ein Thema von TurboMagic · begonnen am 17. Nov 2023 · letzter Beitrag vom 22. Nov 2023
Antwort Antwort
Seite 2 von 2     12   
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#11

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

  Alt 22. Nov 2023, 10:38
Die Auswertung scheint sich auf eine ganz bestimmte Kasse zu beziehen.
Dann gehört (pu.Z_KASSE_ID = 'MeineKasse') in die where-Klausel.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#12

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

  Alt 22. Nov 2023, 11:45
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
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#13

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

  Alt 22. Nov 2023, 12:24
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.
Ralph
  Mit Zitat antworten Zitat
Delphi.Narium

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

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

  Alt 22. Nov 2023, 12: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
Antwort Antwort
Seite 2 von 2     12   


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 11:40 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