求教SQL查询方法

liuczerwcaHuanzi 2013-06-17 09:19:52
如何通过SQL语句把上面这种格式的数据查询成下面这种格式,望大侠们指教(这个时间不是固定的,是选择的查询范围)
Id datetime money
1 2013/06/01 100
2 2013/06/02 105
3 2013/06/03 106
4 2013/06/04 107
5 2013/06/05 108


2013/06/01 2013/06/02 2013/06/03 2013/06/04 2013/06/05
1 100 105 106 107 108
...全文
64 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy__Huang 2013-06-18
  • 打赏
  • 举报
回复
参考:http://blog.csdn.net/hdhai9451/article/details/5026933 这里很多例子
發糞塗牆 2013-06-17
  • 打赏
  • 举报
回复

--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([Id] int,[datetime] datetime,[money] int)
insert [huang]
select 1,'2013/06/01',100 union all
select 2,'2013/06/02',105 union all
select 3,'2013/06/03',106 union all
select 4,'2013/06/04',107 union all
select 5,'2013/06/05',108
--------------开始查询--------------------------

declare @s nvarchar(4000)
set @s=''
Select     @s=@s+','+quotename(CONVERT(VARCHAR(20),[datetime],101))+'=max(case when [datetime]='+quotename([datetime],'''')+' then [money] else 0 end)'
from [huang] group by [datetime]
SET @s=SUBSTRING(@s,2,LEN(@s))
EXEC('select '+@s+' from [huang] ')
----------------结果----------------------------
/* 
06/01/2013  06/02/2013  06/03/2013  06/04/2013  06/05/2013
----------- ----------- ----------- ----------- -----------
100         105         106         107         108
*/
yiyishuitian 2013-06-17
  • 打赏
  • 举报
回复
又见转置:见下贴。 http://bbs.csdn.net/topics/390490978

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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