Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wer erklärt mir SUM in SQL? (https://www.delphipraxis.net/83218-wer-erklaert-mir-sum-sql.html)

torud 29. Dez 2006 12:15

Datenbank: BDE • Zugriff über: SQL

Wer erklärt mir SUM in SQL?
 
Hallo Wissende,

mit folgendem Code hole ich mir die Umsätze eines Monates aus der Datenbank.

Delphi-Quellcode:
Select price From license where int_month = 12 and int_year = 2006
Da ich vermute, dass man SQL auch gleich alles mit einem mal berechnen lassen kann, frage ich mich nun wie!? Ich, das liegt aber an meinem Bildungsgrad, würde in einer Schleife alle betroffenen Felder miteinander summieren. Das kostet Zeit, Code und ist sicher nicht der wirklich richtige Weg. Wie geht das mit Sum? Oder habe ich das was falsch verstanden?

mkinzler 29. Dez 2006 12:20

Re: Wer erklärt mir SUM in SQL?
 
SQL-Code:
Select SUM(price) From license where int_month = 12 and int_year = 2006
liefert dir die Summe aller Datensätze auf die die die Bedingung zutrifft. mit group by kann man auch eine Bedingung für die Gruppierung angeben:
SQL-Code:
Select SUM(price) From license where int_year = 2006 group by int_month
nun werden alle DS die in int_month übereinstimmen zusammengefasst.

torud 29. Dez 2006 12:26

Re: Wer erklärt mir SUM in SQL?
 
Danke und Entschuldigung für die dumme Nachfrage, aber wo wird die Gesamtsumme denn nun gespeichert, bzw. wo kann ich das Ergebnis abfragen? Sorry, aber sowas habe ich leider noch nie gemacht und unter den Tuts war hier leider nix zu finden...

mkinzler 29. Dez 2006 12:31

Re: Wer erklärt mir SUM in SQL?
 
Es wird als Ergebnisfeld geliefert, hier würde ich vorschlagen dem Feld noch einen aussagekräftigen Namen zu geben:
SQL-Code:
Select int_month,SUM(price) as Monatsumme From license where int_year = 2006 group by int_month

torud 29. Dez 2006 12:45

Re: Wer erklärt mir SUM in SQL?
 
Hm geht leider nicht, da ich bei all Deinen Varianten folgende Fehlermeldung erhalten habe.

---------------------------
Debugger Exception Notification
---------------------------
Project Lizenz.exe raised exception class EDBEngineError with message 'Type mismatch in expression.'.
---------------------------
Break Continue Help
---------------------------

mkinzler 29. Dez 2006 12:48

Re: Wer erklärt mir SUM in SQL?
 
Welche Datenbank? Welcher Typ hat price? es scheint so, als ob es ein String sei! Vielleicht hilft:
SQL-Code:
Select int_month,SUM(CAST(price as numeric(15,2))) as Monatsumme From license where int_year = 2006 group by int_month

torud 29. Dez 2006 12:52

Re: Wer erklärt mir SUM in SQL?
 
BDE und ja das Feld Price war leider vom Typ FTString. Ich habe es nun geändert, aber leider sind dadurch die Preise von 7,50 Euro in eine banale 8 geändert worden. Muss ich mal schauen, was das Datenbanktool von Delphi noch so hergibt.

mkinzler 29. Dez 2006 12:55

Re: Wer erklärt mir SUM in SQL?
 
Man sollte den Typ der Felder immer nach dem Inhalt auswählen.
Vielleicht hilft es wenn du ein weiteres feld einfügst und en Inhalt dann per SQL in das andere Feld überträgst.

torud 29. Dez 2006 13:00

Re: Wer erklärt mir SUM in SQL?
 
ich versuchs...Danke


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