我有带有列的表user_payments
user_id / payment_date / type_payment / sum
111 / 2018-01-12 / card / 131
111 / 2018-02-17 / cash / 18
124 / 2018-03-21 / card / 148
119 / 2018-04-01 / card / 225
我需要通过查询将其转换为这样
user_id / 1 (month_numb) type_pay / sum(sum of 1st month) / 2 / 2_sum
111 / card / 131 / cash/ 18
答案 0 :(得分:0)
据我了解,您有: 年,月,类型和总和, 由于所有这些数据在行级别都是动态的。这就是我想出的。
SELECT p.user_id, YEAR(payment_date), MONTH(payment_date), type_payment, SUM(p.`sum`)
FROM user_payments as p
group by p.user_id, YEAR(payment_date), MONTH(payment_date), type_payment
ORDER BY p.user_id, YEAR(payment_date), MONTH(payment_date), type_payment
动态生成列可能很麻烦。
如果用户111在一个月内有6笔付款(考虑到其他类型)该怎么办。这是否意味着必须生成更多列才能满足6条记录? 在编程方面,拥有动态列可能很困难。