我有以下数据集(请注意,我的数据库/架构有些复杂,因此在此处包含所有详细信息是不可行的)
这是我从基表中提取的数据的简化版本,并创建了一个view
.
锻炼活动记录 ID 属性度量 ID 属性度量值锻炼锻炼设置创建 234 17 10 2012-02-06 00:00:00 234 18 30 2012-02-06 00:00:00 234 17 20 2012-03-03 00:00:00 234 18 12.9 2012-03-03 00:00:00 234 17 20 2012-04-02 00:00:00 234 18 40 2012-04-02 00:00:00 . . . (等等进一步的锻炼活动记录ID)
我需要计算(查看数据以更好地理解)
总计 = (10 * 30) + (20 * 12.9) + (20 * 40)按月分组。
这里有助于乘法的基本方法是将行转置为列。所以上面的结构会变成——
锻炼_活动_记录_id ex17 ex18锻炼_锻炼_设置_创建_on 234 10 30 2012-02-06 00:00:00 234 20 12.9 2012-03-03 00:00:00 234 20 40 2012-04-02 00:00:00 . . . . . (对于剩余的锻炼活动记录 ID 依此类推)
为此,我浏览了几篇 SO 帖子,在尝试了各种可行/不可行 (:D) 选项后,我提出了以下查询。
选择 案例属性_metric_id WHEN '17' THEN attribute_metric_value END AS 'ex17', CASE attribute_metric_id WHEN '18' THEN attribute_metric_value END AS 'ex18', 锻炼_锻炼_设置_创建_on FROM 练习属性 在哪里锻炼_活动_记录_id = 234
我得到的实际输出是
锻炼_活动_记录_id ex17 ex18锻炼_锻炼_设置_创建_on 234 10 空 2012-02-06 00:00:00 234 NULL 30 2012-02-06 00:00:00 234 20 空 2012-03-03 00:00:00 234 NULL 12.9 2012-03-03 00:00:00 234 20 空 2012-04-06 00:00:00 234 NULL 40 2012-04-02 00:00:00
任何人都可以对此有所了解吗?我将不胜感激。谢谢!