首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将行转换为sql数据库中的列

将行转换为sql数据库中的列
EN

Stack Overflow用户
提问于 2014-12-30 04:36:17
回答 2查看 66关注 0票数 2

我有一个表,其中包含所有日期的所有项的值。表名为item_data

代码语言:javascript
复制
╔═════════╦═══════╦═════════════╗
║ item_id ║ value ║ report_date ║
╠═════════╬═══════╬═════════════╣
║     101 ║    50 ║ 2014-10-11  ║
║     102 ║    50 ║ 2014-10-11  ║
║     101 ║   100 ║ 2014-10-12  ║
║     102 ║    11 ║ 2014-10-12  ║
╚═════════╩═══════╩═════════════╝

还有另一个包含项目名称的表名是page_items

代码语言:javascript
复制
╔═════════╦═══════════╗
║ item_id ║ item_name ║
╠═════════╬═══════════╣
║     101 ║ sprite    ║
║     102 ║ egg       ║
╚═════════╩═══════════╝

我的要求是,我想按以下方式显示值

代码语言:javascript
复制
╔═════════════╦════════╦═════╗
║ report_date ║ sprite ║ egg ║
╠═════════════╬════════╬═════╣
║ 2014-10-11  ║     50 ║  50 ║
║ 2014-10-12  ║    100 ║  11 ║
╚═════════════╩════════╩═════╝

有谁能帮我使用mysql数据库吗?请告诉我得到这个结果的过程。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-30 04:39:57

可以将条件聚合maxcase结合使用,按日期分组:

代码语言:javascript
复制
select report_date,
    max(case when item_id = 101 then value end) sprite,
    max(case when item_id = 102 then value end) egg
from item_data
group by report_date
  • SQL Fiddle演示
票数 1
EN

Stack Overflow用户

发布于 2014-12-30 06:25:30

试试这个:

代码语言:javascript
复制
select ID.`report_date`,
    case (when PI.`item_id` = 101 then PI.`value` end) AS sprite,
    (when PI.`item_id` = 102 then PI.`value` end) AS egg
from item_data ID
JOIN page_items PI (ON PI.`item_id` = ID.`item_id`)
group by ID.`report_date`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27699625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档