MySQL Forums
Forum List  »  German

Re: GREATEST / MAX von berechneten Spalten
Posted by: Mark Knochen
Date: April 16, 2012 07:04AM

Hallo Thomas,

ich habe da mal was vorbereitet.

Bitte mal alle Daten löschen aus der Tabelle results und nur diese 2 Datensätze einfügen:


INSERT INTO `results` (`ID`, `resultDate`, `id_company`, `factor`, `L`, `M`, `N`) VALUES
(8056, '2011-12-15', 331, '190.00', '0.1800', '0.0000', '0.0000'),
(8057, '2011-12-15', 331, '54.00', '0.2100', '0.0000', '0.0000');

Die ursprüngliche Abfrage

SELECT results.resultDate, 
MAX(
   (results.L * 1734.90 * 0.03225807)+(results.M * 33.50 * 0.03225807)+(results.N * 8370.00 * 0.01000000)
) AS value, 

MAX(
    ((results.L * 1734.90 * 0.03225807) * results.factor) / 31 + 
    ((results.M * 33.50 * 0.03225807) * results.factor) / 31 + 
    ((results.N * 8370.00 * 0.01000000) * results.factor) / 31
) AS score

FROM results 
WHERE resultDate <= '2011-12-15' AND resultDate > ('2011-12-15'- INTERVAL 3 DAY) 
GROUP BY id_company,resultDate ORDER BY value DESC

ergibt.



+------------+-------------------+-------------------------+
| resultDate | value             | score                   |
+------------+-------------------+-------------------------+
| 2011-12-15 | 11.75255038503000 | 61.74150893518064516129 |
+------------+-------------------+-------------------------+
1 row in set (0.00 sec)


Soweit so gut.

Und dieses Ergebnis sollte nun ergänzt werden, um den jeweiligen L-Wert, der zu "value" bzw. "score" geführt hat.

in diesem Fall wären das:

value: 11.75255038503000
valueL: 0.21

score: 61.74150893518064516129
scoreL: 0.18


Das ist das kleinste Beispiel ... (in "echt" handelt es sich im ca. 25 Spalten und den berechneten Werten daraus)


Aber ich denke, das zeigt es ganz gut.

Bis dahin


Mark

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.