Viktor's Supportboard (https://www.v-gn.de/wbb/index.php)
- Programmieren (https://www.v-gn.de/wbb/board.php?boardid=87)
-- MySQL und PHP (https://www.v-gn.de/wbb/board.php?boardid=89)
--- [Hilfe gesucht] Summe (https://www.v-gn.de/wbb/thread.php?threadid=16070)
Geschrieben von headloose am 06.04.2017 um 22:02:
Summe
Hallo zusammen,
ich gebe in einer Tabelle Werte ein bilde die Differenz und multipiziere die Differenz mit einem Euro Wert.
Wenn der Euro Wert z.B. 0,04 Euro ist, das bei 3 oder 4 Werten erhalte ich in der Gesamtsumme immer eine Abweichung von x Cent.
Die Summe bilde ich aus der DB mit SUM(...) AS xxx
Gibt es eine Möglichkeit die genaue Summe zu bilden damit ich keine Abweichung habe?
Geschrieben von headloose am 07.04.2017 um 08:31:
Summen
..vielleicht habe ich das ganze etwas dumm formuliert. Ich versuche es anders
Ich habe eine Mitgliederverwaltung in einer Datenbank. Von dort generiere ich die Rechnungen für meine Mitglieder.
Die Rechnung besteht aus: Mitgliedsbeitrag, Pacht, Umlagen, Porto, Versicherung und Wasserkosten
Die Wasserkosten werden berechnet wie folgt.
Zähler_Anfang - Zähler_Ende * Wassersatz.
Den Wert speichere ich in einer Spalte im Format Decimal 10,4, ab. Ist der Wert z.B. 0,0325, ein weiterer Wert 0,005 addiert mir die Spaltensummierung diese Werte nicht zu meinem Gesamtergebnis hinzu.
Die Spaltensummierung in der Datenbank mache ich:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
$wert = "Select id, SUM(Wasserkosten) AS wasser .....
// Ausgabeschleife
$wasser = $row['wasser'];
// Ausgabe nun formatieren
$ausgabe = number_format($wasser, 2, '.', ''); |
|
Wäre hier evtl. round besser als number_format?
Geschrieben von Schrimm am 07.04.2017 um 15:56:
Hallo,
Das lässt sich so schwer sagen...
Hier wäre ein "Sampledatensatz" angebracht, sowie, wie du den "Sampledatensatz" verarbeitest, was dessen Ergebnis ist und welches Ergebnis du erwartest.
Ergo: Ein konkretes Beispiel.
Tabellen und/oder Spaltenwerte(Einstellungen) könnten ebenfalls interessant sein.
Wie die Werte in die Datenbank gelangen oder welche Berechnungen hinter den "Kosten" stehen, sind eher uninteressant, wenn der Wert erstmal in der Datenbank ist.
Für eine Rundung, sollte es egal sein, ob du "number_format()" oder "round()" verwendest.
"number_format()" formatiert eben im Anschluss auch dein Ergebnis mit Trennzeichen für die Tausenderstelle und die Nachkommastellen und sollte eigentlich keinen Einfluss haben.
Stimmt der "Rohdatenwert", was ja durch Ausgabe des Wertes ohne die Funktionen leicht überprüft werden kann, passiert das Problem früher...
Geschrieben von Schrimm am 07.04.2017 um 20:05:
Hallo,
Nein, "number_format()" rundet ebenfalls.
Sie rundet auf jene Stelle, die beim "decimals"-Parameter angegeben ist.
"number_format()" hat im Bezug auf Rundung somit den gleichen Effekt wie "round()".
Geschrieben von Viktor am 07.04.2017 um 20:13:
|
Zitat: Original von Schrimm
Hallo,
Nein, "number_format()" rundet ebenfalls.
Sie rundet auf jene Stelle, die beim "decimals"-Parameter angegeben ist.
"number_format()" hat im Bezug auf Rundung somit den gleichen Effekt wie "round()". |
|
|
Hallo,
jo das steht leider nicht in der Doku.
http://de2.php.net/manual/de/function.number-format.php
Unten bei der Beispielen habe ich es jetzt gelesen.
Gruß
Viktor
Geschrieben von headloose am 07.04.2017 um 20:29:
Summe
Danke für die Antwort!
wo liegt dann das Problem
Wert | Wert | Wert | = Summe ist richtig
| Wert |
| Wert |
Summe der Spalte falsch
Geschrieben von Schrimm am 07.04.2017 um 20:50:
|
Zitat: Original von Schrimm
Das lässt sich so schwer sagen...
Hier wäre ein "Sampledatensatz" angebracht, sowie, wie du den "Sampledatensatz" verarbeitest, was dessen Ergebnis ist und welches Ergebnis du erwartest.
Ergo: Ein konkretes Beispiel.
Tabellen und/oder Spaltenwerte(Einstellungen) könnten ebenfalls interessant sein.
Wie die Werte in die Datenbank gelangen oder welche Berechnungen hinter den "Kosten" stehen, sind eher uninteressant, wenn der Wert erstmal in der Datenbank ist. |
|
|
Geschrieben von headloose am 07.04.2017 um 20:53:
Summe
Hallo zusammen,
habe alles mit Excel nioch einmal nachgeprüft. Stimmt alles. War Gedanklich falsch unterwegs
Danke noch mal. Manchmal braucht man eben eine auf die Birne
Gruß
Michael
Geschrieben von Viktor am 07.04.2017 um 20:54:
Hallo,
wie sieht denn deine kpl. SAP-Abfrage aus.
Bei SUM muss soweit ich weiß auch ein GROUP BY in der SQL-Abfrage sein.
Gruß
Viktor
Geschrieben von headloose am 10.04.2017 um 10:47:
Summe
Hallo,
Group habe ich nicht drin.
php: |
1:
|
$abfrage ="SELECT SUM/(wasser) AS Wasserkosten, SUM(pacht) AS Jahrespacht, SUM(fed) AS Versicherung.... |
|
Müsste das dann so heissen:
php: |
1:
|
abfrage ="SELECT SUM/(wasser) AS Wasserkosten, SUM(pacht) AS Jahrespacht, SUM(fed) AS Versicherung FROM db_buchhaltung WHERE GROUP by wasserkoste, GROUP by Jahrespacht, GROUP by Versicherung"; |
|
Wäre das dann so richtig?
Geschrieben von Viktor am 10.04.2017 um 19:46:
Hallo,
es muss ja eine eindeutige ID geben in der Datenbank.
z.Bp. Userid oder Username.
Die sollen doch Summiert werden.
Gruß
Viktor
Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab® GmbH