Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Mehrere Werte verrechnen (https://www.delphipraxis.net/68451-mehrere-werte-verrechnen.html)

DGL-luke 29. Apr 2006 19:45

Datenbank: MySQL • Version: 3/4/5?! • Zugriff über: php-nativ

Mehrere Werte verrechnen
 
Hallo.

Ich hab hier sowas wie n Bankkonto, von dem ich die überweisungen holen möchte:

SQL-Code:
SELECT sum(current) from bank_transfers WHERE to = clientid
damit bekomm ich alle überweisungen FÜR den jeweiligen Klienten.
Jetzt würde ich das allerdings gerne sofort damit verechnen:

SQL-Code:
SELECT sum(current) from bank_transfers WHERE from = clientid
Das sind alle überweisungen, die von dem Klienten ausgehen, also minus.

SQL-Code:
SELECT sum(current) as income from bank_transfers WHERE to = clientid;
SELECT sum(current) as expense from bank_transfers WHERE from = clientid;
SELECT income - expense;
Wie geht das? vor allem brauche ich die einzelsummen gar nicht im ergebnis...

fkerber 29. Apr 2006 19:47

Re: Mehrere Werte verrechnen
 
Hi!

Warum nochmal das Select for income-expense?


Ciao Frederic

DGL-luke 29. Apr 2006 19:50

Re: Mehrere Werte verrechnen
 
na weil ich ja die differenz haben will, sprich den kontostand

fkerber 29. Apr 2006 20:26

Re: Mehrere Werte verrechnen
 
Hi!

Was genau liefern die ersten beiden Selects denn zurück? liefern die nicht ne Zahl, eben die Summe, zurück?


Ciao Frederic

marabu 29. Apr 2006 20:45

Re: Mehrere Werte verrechnen
 
Ich würde es mal so probieren:

SQL-Code:
select (select sum(current) from transfers where receiver = 100)
     - (select sum(current) from transfers where sender = 100)
Grüße vom marabu

DGL-luke 30. Apr 2006 01:22

Re: Mehrere Werte verrechnen
 
jo, sieht gut aus, hab ich aber schon probiert :(

Zitat:

Zitat von Mein PHP-Script
select (select sum(current) from bank_transfers where receiver = 1) - (select sum(current) from bank_transfers where sender = 1)
MySQL Fehler Nr. 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select sum(current) from bank_transfers where receiver = 1) -

und auch deine version wird nicht angenommen.

Werd ichs halt selber machen müssen...

marabu 30. Apr 2006 07:13

Re: Mehrere Werte verrechnen
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo Lukas,

Zitat:

Zitat von DGL-luke
jo, sieht gut aus, hab ich aber schon probiert

das kann ich kaum glauben. Hast du auch ein paar Bilder für mich?

Freundliche Grüße vom marabu

DGL-luke 30. Apr 2006 12:15

Re: Mehrere Werte verrechnen
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hmm... mal sehen, was ich da für dich produzieren kann...

marabu 30. Apr 2006 12:54

Re: Mehrere Werte verrechnen
 
Es scheint so, als ob Version 4.0 noch keine scalar subquery beherrscht. Ob ein Wechsel auf eine neuere Version von MySQL alle deine Probleme löst, oder ob du dir lieber eine Krücke baust, musst du selbst wissen. Bei einem konto-bezogenen Ansatz hättest du das Problem übrigens nicht, da dann der Saldo viel einfacher gebildet werden kann:

SQL-Code:
SELECT SUM(betrag) FROM buchungen WHERE konto = 42
Schönes Wochenende

marabu

DGL-luke 30. Apr 2006 13:08

Re: Mehrere Werte verrechnen
 
stimmt.

Dann schieben wirs halt aufs db-design ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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