Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Mysql 2 तालिका में शामिल हों और दिनांक सीमा के बीच अधिकतम और न्यूनतम मान चुनें

मेरा मानना ​​है कि यह अब आपकी आवश्यकताओं से मेल खाता है?

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);

वास्तव में क्या हो रहा है, यह जानने के लिए आपकी कोड संरचना मेरे लिए बहुत खराब है, लेकिन अनिवार्य रूप से ऐसा लगता है कि आप इस बात से अनजान थे कि कुल ऑपरेटर जैसे MAX() केवल एक मान लौटाएं।

आप यह भी स्पष्ट नहीं कर पाए हैं कि आप न्यूनतम/अधिकतम मूल्य क्या चाहते हैं (मैंने इसे प्रति pair मान लिया है) )

कोड का एक रन लें और देखें कि क्या यह सही लौटता है? यदि नहीं तो मुझे बताएं कि यह कहां मेल नहीं खाता है और मैं इसे पैच करना शुरू कर सकता हूं!

संपादित करें नए परिणाम:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL w/PHP में क्वेरी समय परिणाम

  2. सरणी में कुंजी द्वारा MySQL खोज json मान

  3. MySQL कनेक्टर्स और लाइसेंसिंग

  4. समूहीकरण के साथ अधिकतम मान वाली पंक्ति ढूँढना वाक्पटु

  5. तालिका से शीर्ष 2 और 3 रिकॉर्ड प्राप्त करने की क्वेरी