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

कॉलम मान के योग के साथ MySQL पिवट क्वेरी

फिक्स्ड पिवट एसक्यूएल के लिए, इसे आजमाएं:

select
    t.client_name,
    sum(if(t.distributor = 'Dis A', t.amount, 0)) as `Dis A`,
    sum(if(t.distributor = 'Dis B', t.amount, 0)) as `Dis B`,
    sum(if(t.distributor = 'Dis C', t.amount, 0)) as `Dis C`,
    sum(if(t.distributor = 'Dis D', t.amount, 0)) as `Dis D`
from (
    select c.id, c.client_name, d.distributor, r.amount
    from clients c
    left join reports r on c.id = r.clientId
    left join distributor d on d.id = r.distributorId
)t
group by t.id
order by t.client_name

SQLFiddle डेमो यहां

गतिशील पिवट एसक्यूएल के लिए, इसे आजमाएं:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'sum(if(t.distributor = ''',
      distributor,
      ''', t.amount, 0)) AS `',
      distributor ,'`'
    )
  ) INTO @sql
FROM distributor;
SET @sql = CONCAT('SELECT t.client_name, ', @sql, ' FROM (
    select c.id, c.client_name, d.distributor, r.amount
    from clients c
    left join reports r on c.id = r.clientId
    left join distributor d on d.id = r.distributorId
)t
group by t.id
order by t.client_name');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

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. mysql - किसी अन्य तालिका में स्वचालित रूप से घटनाओं को अपडेट करें

  2. एक पेरकोना सर्वर को एक हाइब्रिड क्लाउड पर तैनात करना

  3. ClearDB में MySQL इंजन के संस्करण को कैसे अपडेट करें?

  4. ऐप इंजन से क्लाउड SQL MySQL डेटाबेस से कैसे कनेक्ट करें?

  5. mysql क्वेरी की तरह संख्या को बाहर करें