读书人

经典SQL在线求解高分相送~解决方法

发布时间: 2012-02-09 18:22:27 作者: rapoo

经典SQL在线求解,高分相送~~~~~
--
-- 网点编号 网点名称 预约时间 产品线编号 产品线名称所属分类所属分类编号 数量
-- ===================================================================================
-- 1总部2007-02-27 00:00:00.00023010液晶电视机AV商品230071
-- 1总部2007-02-27 00:00:00.00023011音响AV商品230071
-- 1总部2007-02-28 00:00:00.00023011音响AV商品230071
-- 1总部2007-03-02 00:00:00.00023010液晶电视机AV商品230071
-- 1总部2007-03-08 00:00:00.00023010液晶电视机AV商品230071
-- 1总部2007-03-16 00:00:00.00023010液晶电视机AV商品230071
-- 1总部2007-03-28 00:00:00.00023010液晶电视机AV商品230071
-- 1总部2007-04-01 00:00:00.00023010液晶电视机AV商品230072
-- 1总部2007-04-04 00:00:00.00023010液晶电视机AV商品230071
-- 1总部2007-04-05 00:00:00.00023010液晶电视机AV商品230073
-- 1总部2007-04-12 00:00:00.00023010液晶电视机AV商品230073
-- 1总部2007-04-28 00:00:00.00023010液晶电视机AV商品230072
-- 1总部2007-04-29 00:00:00.00023010液晶电视机AV商品230073
-- 1001浙江地区2007-02-27 00:00:00.00023010液晶电视机AV商品230074
-- 1001浙江地区2007-03-08 00:00:00.00023010液晶电视机AV商品230071
-- 1003杭州网点2007-02-01 00:00:00.00023011音响AV商品230071
-- 1003杭州网点2007-02-26 00:00:00.00023010液晶电视机AV商品230071
-- 1003杭州网点2007-02-27 00:00:00.00023010液晶电视机AV商品230071
-- 1003杭州网点2007-02-27 00:00:00.00023011音响AV商品230071
-- 1003杭州网点2007-02-28 00:00:00.00023010液晶电视机AV商品2300712
-- 1003杭州网点2007-02-28 00:00:00.00023011音响AV商品230072
-- 1003杭州网点2007-03-01 00:00:00.00023010液晶电视机AV商品230072
-- 1003杭州网点2007-03-01 00:00:00.00023011音响AV商品230074
-- 1003杭州网点2007-03-02 00:00:00.00023011音响AV商品230077
-- 1003杭州网点2007-03-09 00:00:00.00023010液晶电视机AV商品230074
-- 1003杭州网点2007-03-27 00:00:00.00023010液晶电视机AV商品230074
-- 1003杭州网点2007-03-28 00:00:00.00023010液晶电视机AV商品230073
-- 1003杭州网点2007-03-29 00:00:00.00023010液晶电视机AV商品230073
-- 1003杭州网点2007-04-01 00:00:00.00023011音响AV商品230073
-- 1003杭州网点2007-04-04 00:00:00.00023010液晶电视机AV商品230073
-- 1003杭州网点2007-04-06 00:00:00.00022110空调电化产品230093
-- 1003杭州网点2007-04-07 00:00:00.00022310电冰箱电化产品230093
-- 1003杭州网点2007-04-20 00:00:00.00022122洗衣机电化产品230093
-- 1003杭州网点2007-04-25 00:00:00.00022110空调电化产品230093
--
-- AV商品电化产品
-- 网点编号 网点名称 预约时间掖晶电视 音响…… 小计 空调 电冰箱 洗衣机…… 小计 总计
-- ===============================================================================
--1 总部 2007-02-27 1 1 1 0 0 0 0 1
-- 。。。。。。。。。

------解决方案--------------------


沙发
[解决办法]
up
[解决办法]
你的数据整理一下
[解决办法]
能否重新整理一下,你想要什么结果?
[解决办法]
drop table tbtest
go
create table tbtest(org varchar(20),date datetime,pline varchar(20),ptype varchar(10),num int)
insert into tbtest
select '总部 ', '007-02-27 00:00:00.000 ', '液晶电视机 ', 'AV商品 ',1
union all select '总部 ', '2007-02-27 00:00:00.000 ', '音响 ', 'AV商品 ',3
union all select '总部 ', '2007-02-28 00:00:00.000 ', '音响 ', 'AV商品 ',1
union all select '总部 ', '2007-03-02 00:00:00.000 ', '液晶电视机 ', 'AV商品 ',1

declare @sql varchar(2000)
set @sql= ' '
select @sql=@sql+ ',sum(case when pline= ' ' '+pline+ ' ' ' then num else 0 end) as ' ' '+pline+ '(数量) ' ' '
from (select distinct pline from tbtest)t
exec( 'select org,date,ptype '+@sql+ ',(select sum(num) from tbtest a where a.org=tbtest.org and a.date=tbtest.date and a.ptype=tbtest.ptype) as 合计 from tbtest
group by org,date,ptype ')
/*
org date ptype 液晶电视机(数量) 音响(数量) 合计
----------- ------------------------------ ---------- ----------- ----------- -----------
总部 2007-02-27 00:00:00.000 AV商品 1 3 4
总部 2007-02-28 00:00:00.000 AV商品 0 1 1
总部 2007-03-02 00:00:00.000 AV商品 1 0 1
*/

读书人网 >SQL Server

热点推荐