+ -
当前位置:首页 → 问答吧 → 关于SQL表数据的显示问题

关于SQL表数据的显示问题

时间:2011-12-15

来源:互联网

(原始数据)
产品 日期 净值
1 2011/12/23 1.3

2 2011/12/25 1.4

3 2011/11/23 1.3

1 2011/10/23 1.6

2 2011/04/23 1.7

3 2011/12/23 1.5


(转换后的数据)

产品ID 1 2 3
01 1.3 1.4 1.3
02 1.6 1.7 1.5

如何将它用SQLServer2005显示成转换后上面的例子一样呢?(查询语句)

作者: springs_xie   发布时间: 2011-12-15

你的产品ID在哪儿呢?

作者: qianjin036a   发布时间: 2011-12-15

SQL code
select
  '0'+ltrim(产品) as 产品ID ,
  max(case 产品 when 1 then 净值 else 0.0 end) as '1',
  max(case 产品 when 2 then 净值 else 0.0 end) as '2',
  max(case 产品 when 3 then 净值 else 0.0 end) as '3'
from
  tb
group by
  '0'+ltrim(产品)

作者: fredrickhu   发布时间: 2011-12-15

SQL code
select
  '0'+ltrim(row_number()over(order by getdate())) as 产品ID ,
  max(case 产品 when 1 then 净值 else 0.0 end) as '1',
  max(case 产品 when 2 then 净值 else 0.0 end) as '2',
  max(case 产品 when 3 then 净值 else 0.0 end) as '3'
from
  tb

作者: fredrickhu   发布时间: 2011-12-15

引用 3 楼 fredrickhu 的回复:

SQL code
select
'0'+ltrim(row_number()over(order by getdate())) as 产品ID ,
max(case 产品 when 1 then 净值 else 0.0 end) as '1',
max(case 产品 when 2 then 净值 else 0.0 end) as '2',
max(case 产品 when 3……


貌似不对,不用partition,产品ID到 06 去了,楼主的才 02.

作者: qianjin036a   发布时间: 2011-12-15

我这是一个表的数据,只是让它简化版的显示出来数据。

作者: springs_xie   发布时间: 2011-12-15

select
  '0'+ltrim(row_number()over(order by getdate())) as 产品ID ,
  max(case 产品 when 1 then 净值 else 0.0 end) as '1',
  max(case 产品 when 2 then 净值 else 0.0 end) as '2',
  max(case 产品 when 3 then 净值 else 0.0 end) as '3'
from
  tb


这个不明白啊?('0'+ltrim(row_number()over(order by getdate())) as 产品ID ,
)这句话什么意思??

作者: springs_xie   发布时间: 2011-12-15

引用 6 楼 springs_xie 的回复:

select
'0'+ltrim(row_number()over(order by getdate())) as 产品ID ,
max(case 产品 when 1 then 净值 else 0.0 end) as '1',
max(case 产品 when 2 then 净值 else 0.0 end) as '2',
max(case 产品 when 3 then ……


你一简化, 01 02 木有了,小F帮你在造 01 02 呢.

作者: qianjin036a   发布时间: 2011-12-15