首页 新闻 赞助 找找看

sql server行转列问题?求解。

0
悬赏园豆:20 [已解决问题] 解决于 2016-07-20 17:56

问题描述:

站点           因子      时间            值
11111111111111    070    2016-07-19 14:41:59.833    1
11111111111111    060    2016-07-19 14:41:59.833    11
22222222222222    060    2016-07-19 14:41:59.833    3
22222222222222    070    2016-07-19 14:41:59.833    2
11111111111111    070    2016-07-19 16:06:47.907    1
11111111111111    070    2016-07-20 08:40:30.140    200

想要的数据是:

站点          070    060   时间
11111111111111   200  null    2016-07-20 08:40:30.140
22222222222222   2       3    2016-07-19 14:41:59.833

 

求所有站点在时间最大的情况下的因子值?

问题补充:

同一个站点,在同一个时间下,值唯一

小小高的主页 小小高 | 小虾三级 | 园豆:1095
提问于:2016-07-20 09:20
< >
分享
最佳答案
0

你这个不好弄,你看第二条数据和第三条数据的因子都是060,但是时间相同,值却不同,这时候怎么取值?

收获园豆:20
刘宏玺 | 专家六级 |园豆:14020 | 2016-07-20 09:45

站点、因子、时间 要可以确定唯一的话就可以实现

刘宏玺 | 园豆:14020 (专家六级) | 2016-07-20 09:47

这个时候站点不同哦。。

小小高 | 园豆:1095 (小虾三级) | 2016-07-20 09:47

同一个站点,在同一个时间下,值唯一

小小高 | 园豆:1095 (小虾三级) | 2016-07-20 09:49

@小小高:

select distinct t.站点,

(select t1.值 from table t1 where t1.站点 = t.站点 and t1.因子 = '070' and t1.时间 = (select max(t2.时间) from table t2 where t2.站点 = t1.站点 and t2.因子 = '070')) 070,

(select t1.值 from table t1 where t1.站点 = t.站点 and t1.因子 = '060' and t1.时间 = (select max(t2.时间) from table t2 where t2.站点 = t1.站点 and t2.因子 = '060')) 060,

from table t

刘宏玺 | 园豆:14020 (专家六级) | 2016-07-20 09:55

@刘宏玺: 谢了。。。大牛

小小高 | 园豆:1095 (小虾三级) | 2016-07-20 10:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册