java从数据库取到数据后按列显示
例如现在数据库的数据如下:姓名工作态度为民服务张三好好张三好较好张三较好一般张三一般一般李四好较好李四好一般李四较好一般李四一般好那么java获取到之后前台显示如下:姓名...
例如现在数据库的数据如下:姓名 工作态度 为民服务
张三 好 好
张三 好 较好
张三 较好 一般
张三 一般 一般
李四 好 较好
李四 好 一般
李四 较好 一般
李四 一般 好
那么java获取到之后前台显示如下:
姓名 类型 好 较好 一般
张三 工作态度 2 1 1
张三 为名服务 1 1 2
李四 工作态度 2 1 1
李四 为名服务 1 1 2
大概就是这样子,数据库里面的这些数据都是别人评论张三李四的数据,求大神指导要怎么才能在java上显示成上图的那样 展开
张三 好 好
张三 好 较好
张三 较好 一般
张三 一般 一般
李四 好 较好
李四 好 一般
李四 较好 一般
李四 一般 好
那么java获取到之后前台显示如下:
姓名 类型 好 较好 一般
张三 工作态度 2 1 1
张三 为名服务 1 1 2
李四 工作态度 2 1 1
李四 为名服务 1 1 2
大概就是这样子,数据库里面的这些数据都是别人评论张三李四的数据,求大神指导要怎么才能在java上显示成上图的那样 展开
展开全部
你这要求很多啊!本来想用一句sql帮你解决的,看来没有那么简单
select name,
SUM(CASE taidu WHEN '较好' THEN 1 ELSE 0 END) '态度较好',
SUM(CASE taidu WHEN '好' THEN 1 ELSE 0 END) '态度好',
SUM(CASE taidu WHEN '一般' THEN 1 ELSE 0 END) '态度一般',
SUM(CASE fuwu WHEN '较好' THEN 1 ELSE 0 END) '服务较好',
SUM(CASE fuwu WHEN '好' THEN 1 ELSE 0 END) '服务好',
SUM(CASE fuwu WHEN '一般' THEN 1 ELSE 0 END) '服务一般'
FROM user GROUP BY name;
user是你的那个评价表
name是姓名,taidu是态度,fuwu是服务
你的到数据之后,需要在java后台再进行一遍处理才能实现你最终的效果
追问
工作态度和为名服务不是列名 他是列的值
展开全部
你先在后台里建一张表,先把数据写在表里,而后再从统计表中读数据。后台数据做后台的事,前台只负责显示你的统计结果就可以了。
追问
请问用什么逻辑可以实现
追答
后台建表 字段 姓名 类型 好 较好 一般
你要用sql 从原始表统计写入新表也可,编个小程序或存储过程统计好后,再写入新表也可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用分组查询
最有效率的方法:根据分组查询。。sql写起来有点麻烦。。
最笨的方法是:
用先分组查询 查出里面的所有人。
然后根据查询每个人对应的类型 得到的评论count 一下。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-08-29
展开全部
数据库里面通过一个sql直接搞成这样的概率不大,我从我的理解层面没找到这种sql
如果能枚举 工作态度 为民服务 里面的值,可以考虑写个存储过程,创建相应的临时表,然后1个sql把数据写入到临时表,再在java里面调用存储过程获取结果集
work=工作态度 man=为民服务 即列名
create temporary table xx(name, type, good, better, best)..
insert into xx
select name, 0, if(work='good', 1, 0), if(work='better', 1, 0), if(work='best', 1, 0), from tb
union
select name, 1, if(man='good', 1, 0), if(man='better', 1, 0), if(man='best', 1, 0), from tb
结果集的列分别对应
姓名 类型 。。。
如果能枚举 工作态度 为民服务 里面的值,可以考虑写个存储过程,创建相应的临时表,然后1个sql把数据写入到临时表,再在java里面调用存储过程获取结果集
work=工作态度 man=为民服务 即列名
create temporary table xx(name, type, good, better, best)..
insert into xx
select name, 0, if(work='good', 1, 0), if(work='better', 1, 0), if(work='best', 1, 0), from tb
union
select name, 1, if(man='good', 1, 0), if(man='better', 1, 0), if(man='best', 1, 0), from tb
结果集的列分别对应
姓名 类型 。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询