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

PHP MYSQLi का उपयोग करके कैसे केवल देनदार और केवल लेनदारों को action_type DR और CR के साथ प्रबंधित किया जाए

ऐसा लगता है कि आपको बस अपना HAVING . संशोधित करने की आवश्यकता है क्लॉज, उन मामलों को फ़िल्टर करने के लिए जहां balance या तो शून्य से अधिक है (देनदार) या balance शून्य से कम (लेनदार) है।

आप सशर्त IF() . का उपयोग भी कर सकते हैं dr/cr determine निर्धारित करने के लिए भाव balance . में कॉलम।

देनदारों get पाने के लिए केवल:

SELECT client_id, 
       Sum(Coalesce(CASE 
                      WHEN action_type = 'dr' THEN amount 
                    end, 0)) AS total_debits, 
       Sum(Coalesce(CASE 
                      WHEN action_type = 'cr' THEN amount 
                    end, 0)) AS total_credits, 
       Sum(Coalesce(CASE 
                      WHEN action_type = 'cr' THEN amount 
                    end, 0)) - Sum(Coalesce(CASE 
                                              WHEN action_type = 'dr' THEN 
                                              amount 
                                            end, 0)) AS total_debtors, 
       IF(Sum(Coalesce(CASE 
                         WHEN action_type = 'cr' THEN amount 
                       end, 0)) - Sum(Coalesce(CASE 
                                                 WHEN action_type = 'dr' THEN 
                                                 amount 
                                               end, 0)) > 0, 'dr', 'cr') AS balance 
FROM   tbl_balancesheet 
GROUP  BY client_id 
HAVING balance = 'dr' AND total_debtors <> 0

लेनदारों get प्राप्त करने के लिए केवल:

SELECT client_id, 
       Sum(Coalesce(CASE 
                      WHEN action_type = 'dr' THEN amount 
                    end, 0)) AS total_debits, 
       Sum(Coalesce(CASE 
                      WHEN action_type = 'cr' THEN amount 
                    end, 0)) AS total_credits, 
       Sum(Coalesce(CASE 
                      WHEN action_type = 'cr' THEN amount 
                    end, 0)) - Sum(Coalesce(CASE 
                                              WHEN action_type = 'dr' THEN 
                                              amount 
                                            end, 0)) AS total_debtors, 
       IF(Sum(Coalesce(CASE 
                         WHEN action_type = 'cr' THEN amount 
                       end, 0)) - Sum(Coalesce(CASE 
                                                 WHEN action_type = 'dr' THEN 
                                                 amount 
                                               end, 0)) > 0, 'dr', 'cr') AS balance 
FROM   tbl_balancesheet 
GROUP  BY client_id 
HAVING balance = 'cr' AND total_debtors <> 0


  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 में MAX () बनाम ग्रेटेस्ट ():क्या अंतर है?

  3. रिलेशनल डेटाबेस में IPv6-संगत पते को कैसे स्टोर करें

  4. MYSQL - एकाधिक तालिका के संदर्भ में एक स्तंभ

  5. कंप्यूट इंजन और/या बाहरी नेटवर्क से एसएसएल के साथ Google क्लाउड SQL