图一数据表中,我想查询1号到3号,张三的收入明细。效果如图二
请问要怎么写sql语句?
请问要怎么写sql语句?
解决方案 »
- 如何在SQL2000里做个插入的触发器?
- 字符引用的疑问
- 设置UNIQUE约束跟设置主键有什么区别?
- 数据库的初始化、备份和恢复
- 怎么样才能学习好sql数据库啊?
- 关于导入文本文件到SQL2000数据库
- 请教一个存储过程,看不明白意思啊.
- 问几个非常基础的问题,小弟是入门的选手!
- 告急:海量数据插入
- 我终于发现自己提的问题是怎么回事了,原来 "Select * From tongdata where name Like '%'"不能将数据表中 name没有记录的记录查询出来, 于是又有了个新问题,我如何将数据表中任意条件的记录sql出来,包括空字符?
- sql第一行报错
- ms sql server 字符串分隔
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([姓名] nvarchar(22),[日期] Date,[收入] int)
Insert #T
select N'张三','2019-1-1',500 union all
select N'张三','2019-1-2',400 union all
select N'张三','2019-1-3',300 union all
select N'张三','2019-1-4',500 union all
select N'张三','2019-1-5',500 union all
select N'张三','2019-1-6',600
Go
--测试数据结束
DECLARE @sql VARCHAR(MAX)
SET @sql = 'select [姓名]'
SELECT @sql = @sql + ',sum(case [日期] when ''' + RTRIM(日期)
+ ''' then [收入] else 0 end)[' + RTRIM(日期) + ']'
FROM ( SELECT DISTINCT
日期
FROM #T WHERE 日期 BETWEEN '2019-1-1' AND '2019-1-3'
) a
SET @sql = @sql
+ ',sum([收入]) 小计 from #T WHERE 日期 BETWEEN ''2019-1-1'' AND ''2019-1-3'' group by [姓名]'
EXEC(@sql)