Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SUM bei mehreren Tabellen (https://www.delphipraxis.net/55838-sum-bei-mehreren-tabellen.html)

S2B 27. Okt 2005 19:33

Datenbank: MySQL • Version: 4 • Zugriff über: PHP

SUM bei mehreren Tabellen
 
Hi @all,
ich möchte gerne drei mal SUM() in drei verschiedenen Tabellen ausführen und das möglichst in einem Query, nur leider klappt das nicht so ganz, wie ich mir das vorstelle:
SQL-Code:
SELECT SUM(m.mod_dl_count) AS mod_dl_count, SUM(s.script_dl_count) AS script_dl_count, SUM(l.link_count) AS link_count
FROM mods m, scripts s, links l
Dabei soll sollen alle 'm.mod_dl_count' in 'mod_dl_count', alle 's.script_dl_count' in 'script_dl_count' und alle 'l.link_count' in 'link_count' zusammengezählt werden. Nur leider werden bei diesem Query die Zahlen irgendwie miteinander verrechnet, auf jeden Fall sind sie um einiges zu groß.

Weiß vielleicht jemand, wie ich das Problem lösen könnte? Imho müsste es mit einem GROUP BY funktionieren, nur was muss ich da genau eingeben, wenn ich nicht pro Eintrag (mod_id o.Ä.), sondern pro Tabelle (mods) gruppieren will und ist das überhaupt möglich?

alzaimar 27. Okt 2005 19:37

Re: SUM bei mehreren Tabellen
 
Du hast drei Tabellen, die nichts miteinander zu tun haben, und willst eine Zeile mit drei Summen?
Subquery:
select
(select sum (a) from myTableA) as SummeA),
(select sum (b) from myTableB) as SummeB),
(select sum (c) from myTableC) as SummeC)

Teste mal, sollte gehen, wenn die DB ANSI beherscht und kein Schrott ist.

S2B 27. Okt 2005 19:48

Re: SUM bei mehreren Tabellen
 
Zitat:

Zitat von alzaimar
Teste mal, sollte gehen, wenn die DB ANSI beherscht und kein Schrott ist.

OK, meine Datenbank beherrscht entweder kein ANSI oder ist Schrott oder beides. :lol:

Das hier läuft nicht:
SQL-Code:
SELECT
   ((SELECT SUM(mod_dl_count) FROM mods) AS mod_dl_count),
   ((SELECT SUM(script_dl_count) FROM scripts) AS script_dl_count),
   ((SELECT SUM(link_count) FROM links) AS link_count);

alzaimar 27. Okt 2005 20:08

Re: SUM bei mehreren Tabellen
 
Meine Schuld: Die äußeren Klammern sind falsch :oops: :
SQL-Code:
SELECT
   (SELECT SUM(mod_dl_count) FROM mods) AS mod_dl_count,
   (SELECT SUM(script_dl_count) FROM scripts) AS script_dl_count,
   (SELECT SUM(link_count) FROM links) AS link_count

marabu 27. Okt 2005 20:12

Re: SUM bei mehreren Tabellen
 
Manchmal geht auch das hier - allerdings Spalten und Zeilen transponiert:

SQL-Code:
SELECT 'm', SUM(mod_dl_count) FROM mods
UNION
SELECT 's', SUM(script_dl_count) FROM scripts
UNION
SELECT 'l', SUM(l.link_count) FROM links
Grüße vom marabu

S2B 27. Okt 2005 20:56

Re: SUM bei mehreren Tabellen
 
@alzaimar: Das ist doch in meinem Code schon behoben, geht genauso wenig. :angel2:

@marabu: Ah, das sieht doch gut aus, danke, das reicht mir. :)

*erledigt*

marabu 27. Okt 2005 21:08

Re: SUM bei mehreren Tabellen
 
Simon, du Lümmel wolltest mal unser Langzeit-Gedächtnis prüfen - oder?

marabu

S2B 27. Okt 2005 21:11

Re: SUM bei mehreren Tabellen
 
Zitat:

Zitat von marabu
Simon, du Lümmel wolltest mal unser Langzeit-Gedächtnis prüfen - oder?

:shock:

Sorry, das wusste ich gar nicht mehr. :duck:

:drunken:

Edit: Naja ok, aber eigentlich suchte ich ja nach etwas Anderem, deine Lösung gefällt mir aber doch noch am Besten. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz