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

MySQL एक ही कॉलम पर दो बार एक ही टेबल में शामिल होता है, जिसमें अलग-अलग वैल्यू केवल सबसे हाल की पंक्ति को लौटाती है

कोशिश करें

SELECT i.id,  
       i.address, 
       i.status,
       p.max_date contract_date, 
       p.basis_value contract_price, 
       e.max_date estimate_date, 
       e.basis_value estimate_value
  FROM Instructions i LEFT JOIN
(
    SELECT q1.instruction_id, max_date, basis_value
      FROM Estimates e JOIN
    (
        SELECT instruction_id, MAX(basis_date) max_date
          FROM Estimates
         WHERE basis = 'CustomerEstimate'
         GROUP BY instruction_id
    ) q1 ON e.instruction_id = q1.instruction_id AND e.basis_date = q1.max_date
) e ON i.id = e.instruction_id LEFT JOIN
(
    SELECT q2.instruction_id, max_date, basis_value
      FROM Estimates e JOIN
    (
        SELECT instruction_id, MAX(basis_date) max_date
          FROM Estimates
         WHERE basis = 'ContractPrice'
         GROUP BY instruction_id
    ) q2 ON e.instruction_id = q2.instruction_id AND e.basis_date = q2.max_date
) p ON i.id = p.instruction_id

आउटपुट:

| ID |                              ADDRESS |     STATUS | CONTRACT_PRICE | CONTRACT_DATE | ESTIMATE_VALUE | ESTIMATE_DATE |
----------------------------------------------------------------------------------------------------------------------------
|  1 | 27 TAYLOR ROAD, ALBION PARK NSW 2527 | InProgress |         140000 |    2013-01-03 |         145000 |    2013-02-09 |

यह रहा SQLFiddle डेमो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सबस्ट्रिंग्स को कैसे संशोधित करें?

  2. मैं जावा का उपयोग करके पूर्ण दिनांक और समय एसक्यूएल कैसे सेट करूं, न कि केवल तिथि?

  3. किसी स्थान के आस-पास के उपनगरों की सूची कैसे प्राप्त करें और फिर MySQL का उपयोग करके अन्य स्थानों के लिए दोहराएं?

  4. MySQL में संग्रहित प्रक्रिया कैसे बनाएं

  5. कुछ विशिष्ट आवश्यकताओं के साथ XML डेटा को MySQL डेटाबेस में संग्रहीत करने का सबसे अच्छा तरीका