linq to sql 能不能解决这个行转列的存储过程啊?create table VIEW_CPWL_DuiZhao(CPName varchar(20),BS int,WLName varchar(20),OutNumber int,Number int, CTime datetime, DanWei varchar(20), XuHao int, wlxh int, HTCode varchar(20))
insert into VIEW_CPWL_DuiZhao values('按摩器' , 1 , 'PE膠袋' , 100 , 4 , '2010-09-16' , '千克' , 1 , 23 , '201009')
insert into VIEW_CPWL_DuiZhao values('按摩器' , 1 , '非瓦楞彩盒', 100 , 40 , '2010-09-16' , '千克' , 1 , 19 , '201009')
insert into VIEW_CPWL_DuiZhao values('按摩器' , 2 , 'PE膠袋' , 50 , 2 , '2010-09-17' , '千克' , 1 , 23 , '201009')
insert into VIEW_CPWL_DuiZhao values('按摩器' , 2 , '非瓦楞彩盒', 50 , 20 , '2010-09-17' , '千克' , 1 , 19 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 5 , '空白電路板', 200 , 80 , '2010-09-16' , '千克' , 2 , 14 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 5 , '單喇叭仔' , 200 , 2 , '2010-09-16' , '千克' , 2 , 5 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 5 , '錫線' , 200 , 6 , '2010-09-16' , '千克' , 2 , 4 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 5 , 'PE膠袋' , 200 , 50 , '2010-09-16' , '千克' , 2 , 23 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 7 , '空白電路板', 400 , 160, '2010-09-18' , '千克' , 2 , 14 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 7 , '單喇叭仔' , 400 , 4 , '2010-09-18' , '千克' , 2 , 5 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 7 , '錫線' , 400 , 12 , '2010-09-18' , '千克' , 2 , 4 , '201009')
insert into VIEW_CPWL_DuiZhao values('電子賀卡L', 7 , 'PE膠袋' , 400 , 100, '2010-09-18' , '千克' , 2 , 23 , '201009')
goCREATE PROCEDURE Search_TongJiNewName
    @name varchar(50), 
    @dt1 DateTime, --开始时间
    @dt2 DateTime --结束时间
AS
BEGIN
set nocount on    
declare @sql nvarchar(4000);
set @sql = N'select m.* , n.OutNumber '+char(10)+'from (select XuHao,CPName, DanWei'+CHAR(10);
select @sql = @sql+',sum(case WLName when '''+WLName+''' then Number else 0 end) [' + WLName + ']'+CHAR(10)
from (select distinct WLName,wlxh from VIEW_CPWL_DuiZhao where CTime between @dt1 and @dt2 and  HTCode=@name) as a
order by wlxh;set @sql=@sql+' from VIEW_CPWL_DuiZhao t '+char(10)+
'where CTime between '''+convert(varchar(10),@dt1,120)+''' and '''+convert(varchar(10),@dt2,120)+''''+CHAR(10)+
' and HTCode='''+@name+''' group by XuHao,CPName , DanWei) m,'+char(10)+
'(select CPName,XuHao, sum(OutNumber) OutNumber '+char(10)+
'from (select distinct CPName, XuHao,OutNumber'+char(10)+
'from VIEW_CPWL_DuiZhao where CTime between '''+convert(varchar(10),@dt1,120)+''' and '''+ convert
(varchar(10),@dt2,120) + ''' and HTCode='''+@name+''') t'+char(10)+
'group by CPName, XuHao) n'+char(10)+
'where m.CPName = n.CPName'+char(10)+
'order by n.XuHao';
exec(@sql);
set nocount off
END
GOexec Search_TongJiNewName '201009' , '2010-09-15','2010-09-18'drop table VIEW_CPWL_DuiZhao
drop proc Search_TongJiNewName/*
XuHao       CPName               DanWei               錫線          單喇叭仔        空白電路板       非瓦楞彩盒       PE膠袋        OutNumber   
----------- -------------------- -------------------- ----------- ----------- ----------- ----------- ----------- ----------- 
1           按摩器                  千克                   0           0           0           60          6           150
2           電子賀卡L                千克                   18          6           240         0           150         600*/如何能够做出,那我就要说:“linq to sql 真是棒啊,linq to sql 顶呱呱啊",如何不能做出,那linq to sql 就是一坨SHIT!!!

解决方案 »

  1.   

    LINQ 不是 SHIT
    http://hi.baidu.com/freezesoul/blog/item/63a10bfa516d539b59ee90ce.html
      

  2.   

    http://topic.csdn.net/u/20110106/11/f9078b48-5c44-4bfa-8c61-e28ae056c0b2.html
      

  3.   


    http://topic.csdn.net/u/20110106/11/f9078b48-5c44-4bfa-8c61-e28ae056c0b2.html
    LINQ 不是 SHIT
    http://hi.baidu.com/freezesoul/blog/item/63a10bfa516d539b59ee90ce.html
    你们提供的列子都不行啊,仔细看下面的表,物料的个数是不固定的也是不确定,你用LING TO SQL 返回 select new{.....},不说你不知道要写什么(因为产品用什么物料在这里程序员是不知道),就算你知道物料,如果有100种物料,你这个SELECT NEW {..}难道要手工写100行!XuHao       CPName               DanWei               錫線          單喇叭仔        空白電路板       非瓦楞彩盒       PE膠袋        OutNumber   
    ----------- -------------------- -------------------- ----------- ----------- ----------- ----------- ----------- ----------- 
    1           按摩器                  千克                   0           0           0           60          6           150
    2           電子賀卡L                千克                   18          6           240         0           150         600*/