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

खाता शेष की गणना के लिए SQL क्वेरी

आप मूल रूप से एक tdebits . के बीच क्रॉस उत्पाद की गणना कर रहे हैं और tcredits , यानी tdebits . में प्रत्येक पंक्ति के लिए आप tcredits . में सभी पंक्तियों पर पुनरावृति कर रहे हैं . accounts में शामिल होने का कोई कारण भी नहीं है (जब तक to_account_id और from_account_id विदेशी कुंजी नहीं हैं)।

आपको केवल एक लेन-देन पास करने की आवश्यकता है और आपको केवल यह जानने की आवश्यकता है कि राशि क्रेडिट है या डेबिट।

SELECT SUM(CASE WHEN t.to_account_id = $1 THEN t.amount ELSE -t.amount END) AS amount
FROM transactions AS t
WHERE (t.to_account_id = $1 OR t.from_account_id = $1)
  AND t.succeed = true

यदि कोई खाता स्वयं को स्थानांतरित कर सकता है, तो एक t.to_account_id <> t.from_account_id जोड़ें ।



  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. MySQL इंडेक्स क्वेरी को धीमा कर रहा है

  3. अपने MySQL के स्वचालित परिनियोजन या बैकअप से क्लस्टर पोस्टग्रेज

  4. MySQL में डेटाटाइम में सेकंड जोड़ना

  5. अनुक्रमित फ़ील्ड पर चयन करते समय IN(...) का उपयोग क्यों चयन क्वेरी के प्रदर्शन को मार देगा?