CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

100分请求一条如何写SQL语句

楼主dairy1(jonth1)2003-12-03 11:48:04 在 VB / 数据库(包含打印,安装,报表) 提问

原在access别人这样写:transform   sum(quantity)   as   quantity   select   color   from   table1   group   by   color   pivot   invert(size)  
  目的:在原数据库中数据是这样  
  size   color   quantity  
  1         blue 问题点数:100、回复次数:8Top

1 楼dairy1(jonth1)回复于 2003-12-03 11:52:17 得分 0

原在access别人这样写:transform     sum(quantity)     as     quantity     select     color     from     table1     group     by     color     pivot     invert(size)      
  目的:在原数据库中数据是这样      
  size     color     quantity      
  1             blue       1  
  1             red         2  
  2             black       2  
  1           black         4  
  数据有重复的,要累计  
   
  要达到输出是这样的表  
  size->       1     2  
  black         4     2            
  blue           1        
  red             2Top

2 楼dairy1(jonth1)回复于 2003-12-03 11:54:25 得分 0

第一次没写完。  
  最终表是以size为行,color为列,当中的数字是经过统计的。如何用sql写在sql   server中实现啊Top

3 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2003-12-03 12:03:13 得分 50

http://expert.csdn.net/Expert/topic/2097/2097186.xmlTop

4 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2003-12-03 12:03:59 得分 0

http://expert.csdn.net/Expert/topic/2116/2116990.xmlTop

5 楼yoki(小马哥--鬓微霜,又何妨)回复于 2003-12-03 12:29:36 得分 0

select   size,color,sum(quantity)   as   quantity  
  from   表  
  group   by   size,colorTop

6 楼dairy1(jonth1)回复于 2003-12-03 14:49:01 得分 0

上述旋转结果可以使用,但是当列值不固定而要旋转如何处理?  
  即象解答例子中,当quarter可以取不止1-4的值,不固定应该如何处理  
  Top

7 楼yoki(小马哥--鬓微霜,又何妨)回复于 2003-12-03 16:44:20 得分 50

 
   
   
   
  --测试如下:  
  create   table   ztable(项目   int,   日期   varchar(10),单号   int,品名   varchar(50),数量   int)  
  insert   into   ztable   select   1,'4-9'   ,18,   '電板',   1500  
  insert   into   ztable   select   2,'4-10',8   ,   '模組',   900  
  insert   into   ztable   select   3,'4-11',18,   '模組',   1500  
  insert   into   ztable   select   4,'4-14',17,   '電板',   1500  
   
     
  declare   @sql   varchar(8000)  
   
  set   @sql='select   项目,日期,单号'  
  select   @sql   =   @sql   +   ',sum(case   品名   when   '''+品名+'''   then   数量   else   0   end)   as   '+品名  
      from   (select   distinct   品名   from   ztable)   as   a  
  select   @sql   =   @sql+'   from   ztable   group   by   项目,日期,单号'  
   
  exec(@sql)  
  drop   table   ztable  
   
  --   结果如下:  
   
  --   项目                     日期                   单号                     電板                     模組                      
  --   -----------   ----------   -----------   -----------   -----------    
  --   1                       4-9                 18                     1500                 0  
  --   2                       4-10               18                     0                       900  
  --   3                       4-11               18                     0                       1500  
  --   4                       4-14               17                     1500                 0Top

8 楼yoki(小马哥--鬓微霜,又何妨)回复于 2003-12-03 16:48:11 得分 0

再给你一个例子:  
  declare   @   table(department   nvarchar(50),   goodsname   nvarchar(50),quantity   int)  
  insert   into   @   values('部门M'   ,           '货品A'       ,                         '100')  
  insert   into   @   values('部门M'   ,           '货品B'       ,                         '3000')  
  insert   into   @   values('部门N'   ,           '货品C'       ,                         '5')  
  insert   into   @   values('部门N'   ,           '货品B'       ,                         '200')  
   
  要得到结果:  
  department           货品A                 货品B         货品C                    
  -------------   ----------   ---------   ---------    
  部门M                     100                   3000                 0  
  部门N                     0                       200                   5  
   
  select   *   into   temp   from   @  
  declare   @sql   varchar(8000)  
  set   @sql   =   'select   department'  
  select   @sql   =   @sql   +   ',sum(case   goodsname   when   '''+goodsname+'''   then   quantity   else   0   end)   as   '+goodsname  
      from   (select   distinct   goodsname   from   temp)   as   a  
  select   @sql   =   @sql+'   from   temp   group   by   department'  
   
  exec(@sql)  
   
  drop   table   tempTop

相关问题

  • 请求一条sql语句
  • 请求这个SQl语句怎样写的问题?
  • 写SQL语句???
  • 请求SQL的 --增、删、改-- 语句?
  • 请求修改sql语句或新语句。
  • 百万火急,请求如何用SQL语句写数据显示格式?
  • 求写SQL语句
  • 求写SQL语句,
  • $$求写SQL语句$$
  • 求写 sql 语句

关键词

  • .net
  • 项目
  • 数据
  • sql
  • ztable
  • 品名
  • 单号
  • quantity
  • 模組
  • 電板

得分解答快速导航

  • 帖主:dairy1
  • TechnoFantasy
  • yoki

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo