![](/img/trans.png)
[英]MySQL combine tables & transpose multiple columns with unique row id into non-unique rows
[英]MySQL - How to convert non-unique rows into columns and maintain integrity?
我想將此表轉換為另一種表,其中“賬單類型”行是兩個不同的列,一個用於實用程序,一個用於開銷。 我懷疑我必須在某個地方使用LIKE'Utilities%'。
tbl_charges
House ID Account AC Type Date Bill Type Amount
---------------------------------------------------------------------
1 1 A 20170101 Overhead 40.00
1 1 A 20170101 Utilities @ Elec 15.50
---------------------------------------------------------------------
2 1 B 20170101 Overhead 35.00
2 1 B 20170101 Utilities @ Elec 25.50
---------------------------------------------------------------------
3 2 B 20170101 Overhead 42.00
3 2 B 20170101 Utilities @ Water 18.25
---------------------------------------------------------------------
1 1 A 20170301 Overhead 39.00
1 1 A 20170301 Utilities @ Elec 19.50
---------------------------------------------------------------------
4 4 A 20170201 Overhead 55.00
4 4 A 20170201 Utilities @ Water 17.25
我想將任何給定日期的兩個房屋ID行組合在一起,並且只有該行的一行與“開銷”在一列中,而“公用事業”在另一列中。 本質上,對於任何給定的房屋ID和日期,我只想要一行。 20170101行上的房屋ID 1的輸出應如下所示:
House ID Account AC Type Date Overhead Utilities Total Amount
1 1 A 20170101 40.00 15.50 55.50
SELECT HouseId, Account, `AC Type`, Date,
MAX( CASE WHEN BillType = 'Overhead' THEN Amount END) as Overhead,
MIN( CASE WHEN BillType LIKE 'Utilities%' THEN Amount END) as Utilities,
SUM(Amount) as `Total Amount`
FROM YourTable
GROUP BY HouseId, Account, `AC Type`, Date
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.