SQL SERVER 对应列值问题
--根据CVGUID PromotionCode 分组 想得到一列,
--如果desc0 的值以买金额为开头 那么值就是 desc0=销售金额对应的salesvolume 的值
--如果desc0 的值以买数量为开头 那么值就是 desc0=销售数量 对应的salesvolume 的值
;WITH cet AS (
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'R201506180001'ElementRelationCode, '买金额送金额'DESC0, 1.0000 SalesVolume union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'R201506230003' ,'买数量送数量', 1.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'R201507310001', '买数量送数量', 5.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'T201506080013', '销售数量', 5000.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'T201506180001', '销售金额', 20.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'T201506190001', '发票金额', 12.0000
)
SELECT * FROM cet
如图
--如果desc0 的值以买金额为开头 那么值就是 desc0=销售金额对应的salesvolume 的值
--如果desc0 的值以买数量为开头 那么值就是 desc0=销售数量 对应的salesvolume 的值
;WITH cet AS (
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'R201506180001'ElementRelationCode, '买金额送金额'DESC0, 1.0000 SalesVolume union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'R201506230003' ,'买数量送数量', 1.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'R201507310001', '买数量送数量', 5.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'T201506080013', '销售数量', 5000.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'T201506180001', '销售金额', 20.0000 union all
select '6F774D1C-C463-42CF-9E14-E9646B371C2A' CVGUID, 'P201506080005'PromotionCode, 'T201506190001', '发票金额', 12.0000
)
SELECT * FROM cet
如图

...全文
相关推荐
Sql,oracle数据表行转列问题
SQL行转列问题,有实例,根据具体实例讲解,清晰易懂。 希望对你有帮助!
SQL Server错误代码大全及解释(留着备用)
SQL Server错误代码大全及解释,以后遇到错误就可以根据对照表查看了
[sql server]SQL Server2005杂谈(4):在SQL Server2005中按列连接字符串的三种方法.doc
SQL Server 2005 杂谈 在SQL Server2005中按列 连接字符串 三种方法 doc SQL Server 2005 杂谈 在SQL Server2005中按列 连接字符串 三种方法 doc
行转列之SQL SERVER PIVOT与用法详解
在数据库操作中,有些时候我们遇到需要实现“行转列”的需求,例如一下的表为某店铺的一周收入情况表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我们先插入一些模拟数据: INSERT INTO WEEK_INCOME SELECT '星期一',1000 UNION ALL SELECT '星期二',2000 UNION ALL SELECT '星期三',3000 UNION ALL SELECT '星期四',4000 UNION ALL SELECT '星期五',5000 UNION ALL SELECT '星期六',6000 UNION ALL
SQL行转列和列转行代码详解
主要介绍了SQL行转列和列转行代码详解,涉及动态方案和静态方案两种处理方式,具有一定参考价值,需要的朋友可以了解下。


