วันอาทิตย์ที่ 20 เมษายน พ.ศ. 2557

ทำข้อมูลรายชั่วโมงให้แสดงผลเป็นรายเดือน และแปลงตารางจาก Row to Column (Transpose Table)

ทำข้อมูลรายชั่วโมงให้แสดงผลเป็นรายเดือน

Mysql Code => 

SELECT
 year(`sk_water`.`dates`) as years,
  MONTH(`sk_water`.`dates`) as months,
  sum(`sk_water`.`u1_energy` + `sk_water`.`u2_energy`+`sk_water`.`u3_energy`+
  `sk_water`.`u4_energy`) as sumengr
FROM
  `sk_water`
GROUP BY EXTRACT(YEAR_MONTH FROM `sk_water`.`dates`)
order by
year(`sk_water`.`dates`),  MONTH(`sk_water`.`dates`)

Result =>


 ปรับตารางการแสดงผลให้เป็นแบบ Transpose (ปรับจาก Row to Column)

** ก่อนจะทำการปรับตารางได้จะต้องนำ SQL ข้างบนไปทำเป็น รูปแบบ View Table ก่อน
    ตั้งชื่อว่า show_month_year

  จากนั้นใช้คำสั่ง SQL ทำการปรับตาราง
Mysql Code => 
   SELECT show_month_year.years,
          MAX(CASE WHEN show_month_year.`months` = '1' THEN show_month_year.`sumengr` ELSE NULL END) AS Jan,
          MAX(CASE WHEN show_month_year.`months` = '2' THEN show_month_year.`sumengr` ELSE NULL END) AS Feb,
          MAX(CASE WHEN show_month_year.`months` = '3' THEN show_month_year.`sumengr` ELSE NULL END) AS Mar,
          MAX(CASE WHEN show_month_year.`months` = '4' THEN show_month_year.`sumengr` ELSE NULL END) AS Apr,
          MAX(CASE WHEN show_month_year.`months` = '5' THEN show_month_year.`sumengr` ELSE NULL END) AS May,
          MAX(CASE WHEN show_month_year.`months` = '6' THEN show_month_year.`sumengr` ELSE NULL END) AS Jun,          
          MAX(CASE WHEN show_month_year.`months` = '7' THEN show_month_year.`sumengr` ELSE NULL END) AS July,
          MAX(CASE WHEN show_month_year.`months` = '8' THEN show_month_year.`sumengr` ELSE NULL END) AS Aug,
          MAX(CASE WHEN show_month_year.`months` = '9' THEN show_month_year.`sumengr` ELSE NULL END) AS Sep,
          MAX(CASE WHEN show_month_year.`months` = '10' THEN show_month_year.`sumengr` ELSE NULL END) AS Oct,
          MAX(CASE WHEN show_month_year.`months` = '11' THEN show_month_year.`sumengr` ELSE NULL END) AS Nov,
          MAX(CASE WHEN show_month_year.`months` = '12' THEN show_month_year.`sumengr` ELSE NULL END) AS Decs 
    FROM `show_month_year`
    WHERE show_month_year.years BETWEEN '2008' and '2010'
GROUP BY `show_month_year`.`years`

Result =>


ไม่มีความคิดเห็น:

แสดงความคิดเห็น