上次写了个比较简单的只有两个字段的例子,经要求在写个  3 个字段的示例 ,贴上来与大家共勉一下   如果你们有更好的方法,提供一下, 感激不尽。

示例如下:

/*
--drop table temp_TestCol_ValueToName;
-- 创建测试表 (前提 每天每个会员只有一条记录)
create table temp_TestCol_ValueToName
(
userName nvarchar(50), -- 会员名
myMoney money, -- 金额
addTime datetime -- 时间
)
-- 添加测试数据
insert into temp_TestCol_ValueToName values('张三',10,'2013-11-01')
insert into temp_TestCol_ValueToName values('张三',40,'2013-11-02')
insert into temp_TestCol_ValueToName values('张三',1,'2013-11-03')
insert into temp_TestCol_ValueToName values('张三',6,'2013-11-04')
insert into temp_TestCol_ValueToName values('李四',40,'2013-11-02')
insert into temp_TestCol_ValueToName values('李四',100,'2013-11-03')
insert into temp_TestCol_ValueToName values('李四',60,'2013-11-06')

*/
-- 预测查询结果
-- userName 1 2 3 4 6
-- 张三 10 40 1 6 0
-- 李四 0 40 100 0 60

-- 查询结果
declare @sql nvarchar(max)='', -- 组装的sql语句
@month varchar(7)='2013-11'; -- 需要查询的年月(只需要改变这个值)
select @sql=@sql+ (case @sql when '' then '' else ',' end)
+'max(case DAY(addTime) when '+CAST(d as varchar)+' then myMoney else 0 end) ['+CAST(d as varchar)+']'
from (select distinct DAY(addTime) d from temp_TestCol_ValueToName where CONVERT(varchar(7),addTime,120)=@month) a;
set @sql='select userName [userName],'+@sql+' from temp_TestCol_ValueToName where CONVERT(varchar(7),addTime,120)='''+@month+''' group by userName;';
exec sp_executesql @sql;

SQL Server 表字段值转换成字段名称(二)的更多相关文章

  1. SQL Server 表字段值转列名 示例

    前几天,同事问我怎样把字段值转换成字段列,就写了一个最简单的Demo分享一下. 代码如下: -- 创建测试表以及添加测试数据create table #temp(a money,b varchar(1 ...

  2. sql 在将 nvarchar 值 转换成数据类型 int 时失败。

    假设有存储过程:proc_test2 create proc proc_test2 @Id int begin as declare @sql varchar(max) @sql = 'select ...

  3. 修改sql server表字段的字符串

    网站标题被注入黑链接,使用sql脚本update修改字段内的字符串截取UPDATE [qds0460132_db].[dbo].[Blood_News]   SET [Blood_Name] = SU ...

  4. 获得、修改 SQL Server表字段说明

    SELECT ( then d.name else '' end) 表名, a.colorder 字段序号, a.name 字段名, g.[value] AS 字段说明 FROM syscolumns ...

  5. sql server like 在将值转换成数据类型int失败

    select * from table where title like '%'?'%'; 采用? 传参会报错:sql server like 在将值转换成数据类型int失败 select * fro ...

  6. SQL3120W 不能将xx的字段值转换成 INTEGER值

    一次用DB2 Load/Import导入数据时,报错,提示SQL3120W 不能将xx的字段值转换成 INTEGER值,但目标列不可为空.未装入该行. 目标表: CREATE TABLE TEST( ...

  7. SQL Server日期时间格式转换字符串详解 (详询请加qq:2085920154)

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  8. SQL Server日期时间格式转换字符串

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  9. SQL Server日期时间格式转换字符串详解

    本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...

随机推荐

  1. 计算字符串的最长回文子串 :Manacher算法介绍

    转自: http://www.open-open.com/lib/view/open1419150233417.html Manacher算法 在介绍算法之前,首先介绍一下什么是回文串,所谓回文串,简 ...

  2. 一个QT 3D转动控件

    其实说到底就是不停的截图,做出的幻觉.联想起360拖动图片,也是合并图片做出的效果,可见的对GUI来说图片是一切,是最根本的解决一切问题的办法,编程仅是辅助实现手段而已,我要记住这一点. .h文件 # ...

  3. JS仿淘宝详情页菜单条智能定位效果

    类似于淘宝详情页菜单条智能定位 对于每个人来说并不陌生!如下截图所示:红色框的那部分! 基本原理: 是用JS侦听滚动事件,当页面的滚动距离(页面滚动的高度)大于或者等于 "对象"( ...

  4. BZOJ 1491 [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1159  Solved: 660[Submit][Status] ...

  5. asp.net生成二维码的方法

    asp.net生成二维码的方法 [复制链接]     这个要利用一个Dll文件. 如下 Gma.QrCodeNet.Encoding.dll (105.5 KB, 下载次数: 27) 当然大家也可以直 ...

  6. iOS类的继承关系

  7. (转载)sinaeditor漏洞

    SinaEditor简介 SinaEditor是基于新浪博客编辑器的开源编辑器.您可以用它来编辑富文本内容. 编辑器的核心是一个执行队列的调度系统,加入插件来实现功能,并通过事件来驱动编辑器的运行.我 ...

  8. HDU2037 今年暑假不AC 贪心算法

    贪心算法 : 贪心算法就是只考虑眼前最优解而忽略整体的算法, 它所做出的仅是在某种意义上的局部最优解, 然后通过迭代的方法相继求出整体最优解. 但是不是所有问题都可以得到整体最优解, 所以选择贪心策略 ...

  9. 全国各城市Uber客服联系方式(电话、邮箱、微博)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. ios打包ipa的四种实用方法

    总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选 ...