请教各位大神一下,这个题应该怎么做?

qq_40962320 2018-05-21 08:33:53
下面这个表,要求在一行中通过查询展示这些内容
航空公司(aircomp) 第一季度销量 第二季度销量 第三季度销量 第四季度销量 平均销量 总销量
想了好久实在做不出来。麻烦各位帮个忙

这是数据库表


这是SQL语句

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `airplane`
-- ----------------------------
DROP TABLE IF EXISTS `airplane`;
CREATE TABLE `airplane` (
`Aircomp` varchar(10) NOT NULL,
`Seasion` varchar(20) NOT NULL,
`Sale` int(11) NOT NULL,
`Comid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of airplane
-- ----------------------------
INSERT INTO `airplane` VALUES ('3U', '第一季度', '1000', '1');
INSERT INTO `airplane` VALUES ('3U', '第二季度', '1200', '1');
INSERT INTO `airplane` VALUES ('3U', '第三季度', '1759', '1');
INSERT INTO `airplane` VALUES ('3U', '第四季度', '3000', '1');
INSERT INTO `airplane` VALUES ('CA', '第一季度', '3000', '2');
INSERT INTO `airplane` VALUES ('CA', '第二季度', '4000', '2');
INSERT INTO `airplane` VALUES ('CA', '第三季度', '2000', '2');
INSERT INTO `airplane` VALUES ('CA', '第四季度', '8000', '2');
...全文
596 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40962320 2018-05-23
  • 打赏
  • 举报
回复
引用 3 楼 u012142699 的回复:
是需要这样吗? SQL 语句:

SELECT Aircomp,
SUM(CASE Seasion WHEN '第一季度' THEN Sale ELSE 0 END) '第一季度',
SUM(CASE Seasion WHEN '第二季度' THEN Sale ELSE 0 END) '第二季度',
SUM(CASE Seasion WHEN '第三季度' THEN Sale ELSE 0 END) '第三季度',
SUM(CASE Seasion WHEN '第四季度' THEN Sale ELSE 0 END) '第四季度',
AVG(Sale) '平均值',SUM(Sale) '总值'
FROM airplane GROUP BY Aircomp
是这样,非常感谢!
  • 打赏
  • 举报
回复
是需要这样吗?

SQL 语句:

SELECT Aircomp,
SUM(CASE Seasion WHEN '第一季度' THEN Sale ELSE 0 END) '第一季度',
SUM(CASE Seasion WHEN '第二季度' THEN Sale ELSE 0 END) '第二季度',
SUM(CASE Seasion WHEN '第三季度' THEN Sale ELSE 0 END) '第三季度',
SUM(CASE Seasion WHEN '第四季度' THEN Sale ELSE 0 END) '第四季度',
AVG(Sale) '平均值',SUM(Sale) '总值'
FROM airplane GROUP BY Aircomp
yuyilm 2018-05-22
  • 打赏
  • 举报
回复
用case when进行转列,
法之 2018-05-22
  • 打赏
  • 举报
回复
SELECT Aircomp, SUM(IF(Seasion='第一季度',Sale,0)) '第一', SUM(IF(Seasion='第二季度',Sale,0)) '第二', SUM(IF(Seasion='第三季度',Sale,0)) '第三', SUM(IF(Seasion='第四季度',Sale,0)) '第四', SUM(Sale) '总值', AVG(Sale) '平均值' FROM airplane
ACMAIN_CHM 2018-05-21
  • 打赏
  • 举报
回复
http://blog.csdn.net/acmain_chm/article/details/4283943 MySQL交叉表 在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧