CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

'sql 语句问题:请进:

楼主neary(流浪)2002-07-21 17:43:10 在 .NET技术 / ASP.NET 提问

table1  
  入库类型 入库吨数 完成  
  a 22 1  
  b 2 1  
  c 36 1  
  a 28 1  
  b 2 1  
  a 2 0  
  b 21 0  
  c 38 0  
  b 21 0  
  c 38 0  
   
  我想得到这样一个查询结果:  
  入库类型 已完成吨数 未完成吨数  
  a 30 2  
  b 4 42  
  c 36 76  
   
  也就是入库吨数求和,按类型---row,完成--col 问题点数:20、回复次数:13Top

1 楼GumPGZ(努力*奋斗)回复于 2002-07-21 17:52:10 得分 0

select   *   from   table1   order   by   入库类型   compute   sum(入库类型)  
   
  这样就能得到了Top

2 楼neary(流浪)回复于 2002-07-22 06:21:55 得分 0

to   GumPGZ(像阿甘一样奔跑):  
  无法实现  
  请大家关注Top

3 楼ameng_2002(flyfox)回复于 2002-07-22 09:37:58 得分 0

select   入库类型,sum(完成)   as   已完成吨数,sum(未完成)as   未完成吨数  
  from   table1  
  group   by   入库类型  
  Top

4 楼GaoFX(紫龙)回复于 2002-07-22 10:09:59 得分 0

你的查询结果与前面的数据是什么关系?有点不明白。说明白我给你写Top

5 楼GumPGZ(努力*奋斗)回复于 2002-07-22 10:15:15 得分 0

我不太明白你的意思,  
  你是想对每中入库类型的入库吨数和完成数求和么?Top

6 楼neary(流浪)回复于 2002-07-22 16:54:10 得分 0

完成是逻辑字段,表示是否已经入库  
  我想查出每个类型的已经入库吨数和未入库吨数  
  谢谢大家的关注!!Top

7 楼GumPGZ(努力*奋斗)回复于 2002-07-22 20:37:49 得分 0

我怎么就没看出未入库吨数在哪里呢Top

8 楼GumPGZ(努力*奋斗)回复于 2002-07-22 20:38:11 得分 0

我怎么就没看出未入库吨数在哪里呢Top

9 楼losenetway(firesword)回复于 2002-07-22 23:14:38 得分 0

那种问题想用一个SQL搞定好像不可能,如果可以在数据库中建一个临时表的话那还是可以作出来的Top

10 楼losenetway(firesword)回复于 2002-07-22 23:20:31 得分 0

那种问题想用一个SQL搞定好像不可能,如果可以在数据库中建一个临时表的话那还是可以作出来的Top

11 楼ameng_2002(flyfox)回复于 2002-07-23 10:39:11 得分 0

一种比较笨的方法,创建两个视图  
  use   mis  
  go  
  create   view   view1  
  as  
  select   入库类型,sum(入库吨数)   as   完成吨数   from   test   where   完成状况='1'group   by   入库类型  
  go  
  create   view   view2  
  as  
  select   入库类型,sum(入库吨数)   as   未完成吨数   from   test   where   完成状况='0'group   by   入库类型  
  go  
  select   view1.入库类型,view1.完成吨数   ,未完成吨数   from   view1,view2  
  where   view1.入库类型=view2.入库类型  
   
   
  Top

12 楼xu_zu002(自已量化)回复于 2002-07-23 11:57:31 得分 0

不知我理解你的意思是否正確.  
  create   table   #test1   (goin_type   varchar(1),num   int   ,F_sing   varchar(1))  
   
  select   Test.T_type,Test.Total_num,Test2.Total_num   from    
  (  
  select   goin_type   as   T_type,F_sing,sum(num)   as   Total_num   from   #test1   where   f_sing='1'   group   by   goin_type,F_sing    
  )   as     Test  
  left   join  
  (select   goin_type   as   T_type   ,F_sing,sum(num)   as   Total_num   from   #test1   where   f_sing='0'   group   by   goin_type,F_sing   )   as   Test2  
  on    
  Test.T_type=Test2.T_type  
  Top

13 楼xu_zu002(自已量化)回复于 2002-07-23 11:59:22 得分 0

create   table   #test1   (goin_type   varchar(1),num   int   ,F_sing   varchar(1))  
   
  select   Test.T_type,Test.Total_num,Test2.Total_num   from    
  (  
  select   goin_type   as   T_type,F_sing,sum(num)   as   Total_num   from   #test1   where   f_sing='1'   group   by   goin_type,F_sing    
  )   as     Test  
  left   join  
  (select   goin_type   as   T_type   ,F_sing,sum(num)   as   Total_num   from   #test1   where   f_sing='0'   group   by   goin_type,F_sing   )   as   Test2  
  on    
  Test.T_type=Test2.T_type  
  我是這樣理解的Top

14 楼GaoFX(紫龙)回复于 2002-07-23 14:12:42 得分 0

--假设置表的数据结构如下:  
  CREATE   Table   Storage(  
      Type   char(4)     not   null,                       /*入库类型*/      
      Quantity   float   not   null   default   0,   /*入库数量*/  
      IsFinished   bit   not   null   default   0     /*是否完成*/  
  )  
  go  
   
  --增加(插入)数据  
  --......  
   
  --查询  
  SELECT   T1.Type   ,   T1.Quantity,   T2.Quantity  
      FROM   (   SELECT   Type,   SUM(   Quantity)   AS   Quantity   FROM   Storage2   WHERE   IsFinished   =   1   GROUP   BY   Type   )   T1,  
                (   SELECT   Type,   SUM(   Quantity)   AS   Quantity   FROM   Storage2   WHERE   IsFinished   =   0   GROUP   BY   Type   )   T2  
      WHERE   T1.Type   =   T2.Type  
  go  
   
  --查询结果如下:  
  Type   Quantity           Quantity        
  ----   ------------   -----------  
  a         50.0                   2.0  
  b         4.0                     42.0  
  c         36.0                   76.0  
   
  (所影响的行数为   3   行)  
   
  不知道是不是要的这个结果  
  Top

15 楼GaoFX(紫龙)回复于 2002-07-23 14:15:34 得分 20

中间的表名写错了,应该为  
  SELECT   T1.Type   ,   T1.Quantity,   T2.Quantity  
      FROM   (   SELECT   Type,   SUM(   Quantity)   AS   Quantity   FROM   Storage   WHERE   IsFinished   =   1   GROUP   BY   Type   )   T1,  
                (   SELECT   Type,   SUM(   Quantity)   AS   Quantity   FROM   Storage   WHERE   IsFinished   =   0   GROUP   BY   Type   )   T2  
      WHERE   T1.Type   =   T2.Type  
  goTop

相关问题

  • UPDATE语句,sql 语句高手请进
  • UPDATE语句,sql 语句高手请进
  • UPDATE语句,sql 语句高手请进
  • sql 语句高手请进
  • sql语句,详情请进。
  • sql语句,详情请进。
  • sql语句,详情请进。
  • ----求SQL语句----请进
  • ---求一SQL语句---请进
  • 请进,求一SQL语句!

关键词

  • view
  • sql
  • 吨数
  • 入库
  • 类型
  • 完成
  • sum
  • 明白
  • 问题
  • num

得分解答快速导航

  • 帖主:neary
  • GaoFX

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

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