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

mysql के साथ संतुलन की गणना करें

संक्षिप्त उत्तर, हाँ

लंबा उत्तर, आप एक चर का उपयोग करके इसका मिलान कर सकते हैं क्योंकि यह पंक्तियों को पुनरावृत्त करता है, अर्थात

SELECT 
    `table`.`ID`,
    `table`.`In`,
    `table`.`Out`,
    @Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
FROM `table`, (SELECT @Balance := 0) AS variableInit
ORDER BY `table`.`ID` ASC

, (SELECT @Balance := 0) AS variableInit सुनिश्चित करता है कि आपके शुरू करने से पहले @Balance को 0 से प्रारंभ किया गया है। प्रत्येक पंक्ति के लिए यह @Balance को @Balance + In - Out . पर सेट करता है , और फिर परिकलित मान को आउटपुट करता है।

यह भी सुनिश्चित करने लायक है कि ऑर्डर सुसंगत है अन्यथा शेष पंक्तियों को किस क्रम में लौटाया जाता है, इस पर निर्भर करता है। यदि आप इसे वापस सामने रखना चाहते हैं, उदाहरण के लिए, आप इसे एक सबक्वायरी के रूप में उपयोग कर सकते हैं क्योंकि बाहरी क्वेरी परिकलित मानों से संबंधित होती है जिससे यह सुनिश्चित होता है कि शेष राशि सही रहती है यानी

SELECT
    `balanceCalculation`.`ID`,
    `balanceCalculation`.`In`,
    `balanceCalculation`.`Out`,
    `balanceCalculation`.`Balance`
FROM (
    SELECT 
        `table`.`ID`,
        `table`.`In`,
        `table`.`Out`,
        @Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
    FROM `table`, (SELECT @Balance := 0) AS variableInit
    ORDER BY `table`.`ID` ASC
) AS `balanceCalculation`
ORDER BY `balanceCalculation`.`ID` DESC


  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 त्रुटि कोड 1235

  2. अल्पविराम से अलग किए गए मानों के साथ एकल MySQL फ़ील्ड

  3. किसी फ़ील्ड से पहला शब्द निकालने के लिए MySQL क्वेरी

  4. मैं MySQL में चालू माह के पहले दिन और वर्तमान दिन के बीच कैसे चयन करूं?

  5. जावा:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:डेटाबेस सर्वर से कनेक्शन नहीं बना सका