Ik geloof dat dit nu aan uw eisen voldoet?
SELECT *
FROM Orders
JOIN (SELECT price as maxPrice, pair, tr_time as maxTime FROM Rates
JOIN (SELECT Rates.pair, MAX(Rates.price) AS price
FROM Rates, Orders
WHERE (Rates.tr_time between Orders.opentime and Orders.closetime)
GROUP BY Rates.pair)
as MaxPrices USING (price, pair)) maxRates USING (pair)
JOIN (SELECT price AS minPrice, pair, tr_time as minTime FROM Rates
JOIN (SELECT Rates.pair, MIN(Rates.price) AS price
FROM Rates, Orders
WHERE (Rates.tr_time between Orders.opentime and Orders.closetime)
GROUP BY Rates.pair)
as minPrices USING (price, pair)) minRates USING (pair);
Uw codestructuur is te slecht voor mij om echt uit te zoeken wat er aan de hand is, maar in wezen lijkt het erop dat u niet wist dat aggregatie-operators zoals MAX()
retourneer slechts één waarde.
U bent ook niet duidelijk geweest over wat u de minimum/maximum prijs wilde van (ik heb aangenomen dat het per pair
is )
Voer de code uit en kijk of deze goed terugkeert? Zo niet, vertel me dan waar het niet overeenkomt en ik kan beginnen met patchen!
BEWERKEN Nieuwe resultaten: