Hallo iedereen.
Ik ben bezig met een applicatie in PHP en MySQL. Ik heb de volgende tabel:
Daarover heb ik de volgende query gemaakt:
Ik krijg echter het volgende resultaat:
Hoe kan dit? avg_rate zou dezelfde waarde moeten hebben als de waarde in 'price', aangezien er maar één transactie is. Er is echter een (zeer klein) verschil.
Ik heb de query zowel met behulp van PHP als rechtstreeks op de MySQL server uitgevoerd. Mijn MySQL versie is 3.23.52 op RedHat 8.0
Mijn velden zijn van de volgende types:
id --> int(11)
quantity --> float(7,4)
price --> float(7,4)
Ik heb nog een aantal andere waarden in de tabel staan waar wel de goede 'avg_rate' word berekend...
Weet iemand hoe dit kan? Heb ik een verkeerde query gemaakt? Kan MySQL niet rekenen? Is er een probleem met afrondingen? Is dit een bekende bug(?) in MySQL?
Ik ben bezig met een applicatie in PHP en MySQL. Ik heb de volgende tabel:
| id | quantity | price |
| 659 | 25.0000 | 57.1000 |
Daarover heb ik de volgende query gemaakt:
Hieruit verwacht ik het volgende resultaat:SELECT `transactions`.`id` ,
SUM( `transactions`.`quantity` ) AS `total_quantity`,
SUM(`transactions`.`buy_price`) as sum_price, SUM( `transactions`.`quantity` * `transactions`.`buy_price` ) / SUM(`transactions`.`quantity`) as `avg_rate`
FROM transactions
WHERE ( `transactions`.`id_stocks` = 659 )
GROUP BY `transactions`.`id_stocks`
| id | total_quantity | sum_price | avg_rate |
| 659 | 25.0000 | 57.1000 | 57.1000 |
Ik krijg echter het volgende resultaat:
| id | total_quantity | sum_price | avg_rate |
| 659 | 25.0000 | 57.1000 | 57.099998 |
Hoe kan dit? avg_rate zou dezelfde waarde moeten hebben als de waarde in 'price', aangezien er maar één transactie is. Er is echter een (zeer klein) verschil.
Ik heb de query zowel met behulp van PHP als rechtstreeks op de MySQL server uitgevoerd. Mijn MySQL versie is 3.23.52 op RedHat 8.0
Mijn velden zijn van de volgende types:
id --> int(11)
quantity --> float(7,4)
price --> float(7,4)
Ik heb nog een aantal andere waarden in de tabel staan waar wel de goede 'avg_rate' word berekend...
Weet iemand hoe dit kan? Heb ik een verkeerde query gemaakt? Kan MySQL niet rekenen? Is er een probleem met afrondingen? Is dit een bekende bug(?) in MySQL?