资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

大家来看看,这种类型的列转行怎么办,求sql语句请各位高手帮忙

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

 
  根据如下sql生成的的表  
  create   table   product    
  (productID   varchar(10),  
    suttle       numeric(10,2),  
    gross         numeric(10,2)  
  )  
  insert   product   values(product1,12,8)  
  insert   product   values(product1,14,7)  
  insert   product   values(product1,13,9)  
  insert   product   values(product2,12,4)  
  insert   product   values(product2,13,10)  
  insert   product   values(product2,12,8)  
  insert   product   values(product3,12,8)  
  insert   product   values(product3,12,8)  
  insert   product   values(product3,12,8)  
  insert   product   values(product3,12,8)  
  select   *   from   product  
   
  希望得到  
   
  productID     suttle   gross   suttle   gross   suttle   gross     suttle   gross  
  product1         12             8         14             7         13             9           null       null  
  product2         12             4         13             10       12             8           null       null  
  product3         12             8         12             8         12             8           12             8

网友回答:

发表者:lsxaa

这样  
  select   id=identity(int,1,1),*     into   #t   from     product    
   
  select   a.productID,a.suttle,a.gross,b.suttle,b.gross,c.suttle,c.gross  
                ,d.suttle,d.gross  
  from   #t   a    
  left   join     #t     b   on   a.id=b.id-1   and   a.id   %   4=1   and   b.id   %   4=2  
  left   join     #t     c   on   a.id=c.id-2   and   a.id   %   4=1   and   c.id   %   4=3  
  left   join     #t     d   on   a.id=c.id-3   and   a.id   %   4=1   and   d.id   %   4=4  
 

发表者:laker_tmj

up   learn

发表者:hdhai9451

如果product3   再加10個產品﹐那么表的結構會發生很大的變化﹐可以通過別的辦法求出來﹐不用表的形式還好

发表者:laker_tmj

lsxaa(小李铅笔刀) 的不行啊,是以下結果  
   
  product1 12.00 8.00 14.00 7.00 13.00 9.00 NULL NULL  
  product1 14.00 7.00 NULL NULL NULL NULL NULL NULL  
  product1 13.00 9.00 NULL NULL NULL NULL NULL NULL  
  product2 12.00 4.00 NULL NULL NULL NULL NULL NULL  
  product2 13.00 10.00 12.00 8.00 12.00 8.00 NULL NULL  
  product2 12.00 8.00 NULL NULL NULL NULL NULL NULL  
  product3 12.00 8.00 NULL NULL NULL NULL NULL NULL  
  product3 12.00 8.00 NULL NULL NULL NULL NULL NULL  
  product3 12.00 8.00 12.00 8.00 NULL NULL NULL NULL  
  product3 12.00 8.00 NULL NULL NULL NULL NULL NULL  
 

发表者:zjcxc

create   table   product    
  (productID   varchar(10),  
    suttle       numeric(10,2),  
    gross         numeric(10,2)  
  )  
  insert   product   values(product1,12,8)  
  insert   product   values(product1,14,7)  
  insert   product   values(product1,13,9)  
  insert   product   values(product2,12,4)  
  insert   product   values(product2,13,10)  
  insert   product   values(product2,12,8)  
  insert   product   values(product3,12,8)  
  insert   product   values(product3,12,8)  
  insert   product   values(product3,12,8)  
  insert   product   values(product3,12,8)  
  go  
   
  --查询处理  
  select   id=0,*   into   #t   from   product   order   by   productID  
  declare   @productID   varchar(10),@i   varchar(10),@s   varchar(8000)  
  update   #t   set   @i=case   productID   when   @productID   then   @i+1   else   1   end  
  ,id=@i,@productID=productID  
  select   @i=max(id),@s=   from   #t  
  while   @i>0  
  select   @s=,[suttle+@i+]=sum(case   id   when   +@i+   then   suttle   end),[gross  
  +@i+]=sum(case   id   when   +@i+   then   gross   end)+@s  
  ,@i=@i-1  
  exec(select   productID+@s+   from   #t   group   by   productID)  
  drop   table   #t  
  go  
   
  --删除测试  
  drop   table   product  
   
  /*--结果:  
   
  productID     suttle1       gross1         suttle2       gross2         suttle3       gross3         suttle4       gross4        
  ----------   ---------   ---------   ---------   ---------   ---------   ---------   ---------   ---------  
  product1       12.00           8.00             14.00           7.00             13.00           9.00             NULL             NULL  
  product2       12.00           4.00             13.00           10.00           12.00           8.00             NULL             NULL  
  product3       12.00           8.00             12.00           8.00             12.00           8.00             12.00           8.00  
   
  --*/


 

 
热门推荐笔记本: 索尼笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved