CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

这是GROUP BY的问题吗?

楼主trls(天然六神)2005-08-04 16:57:36 在 MS-SQL Server / 基础类 提问

表1:SaledProduct  
  ========================  
  sales_no           saled_prod  
  100                     1  
  101                     2  
  102                     1  
  103                     3  
  104                     1  
   
  表2:SalesInfo  
  ========================  
  sales_no           status  
  100                     -1  
  101                     1  
  102                     1  
  103                     -1  
  104                     1  
   
   
  想得到如下结果  
  ===========================================================  
  sales_no           saled_prod         total_sales         total_saled_prod  
  101                     2                           3                             4  
  102                     1                           3                             4  
  104                     1                           3                             4  
   
   
  我这样写的  
   
  SELECT   sp.sales_no,   sp.saled_prod,   COUNT(sp.sales_no)   AS   total_sales,    
              SUM(sp.saled_prod)   AS   total_saled_prod  
  FROM   SalesInfo   si   INNER   JOIN  
              SaledProduct   sp   ON   si.sales_no   =   sp.sales_no  
  WHERE   (si.status   =   1)  
  GROUP   BY   sp.sales_no,   sp.saled_prod  
   
  但是结果不对  
   
  ===========================================================  
  sales_no           saled_prod         total_sales         total_saled_prod  
  101                     2                           1                             2  
  102                     1                           1                             1  
  104                     1                           1                             1  
   
   
  请问该怎么写?  
  问题点数:20、回复次数:5Top

1 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-08-04 17:10:12 得分 0

select  
          a.sales_no,  
          a.saled_prod,  
          total_sales   =   (select    
                                                count(*)    
                                        from    
                                                SaledProduct   c,SalesInfo   d    
                                        where    
                                                c.sales_no   =   d.sales_no   and   d.status   =   1),  
          total_saled_prod   =   (select    
                                                          sum(c.saled_prod)    
                                                  from    
                                                          SaledProduct   c,SalesInfo   d    
                                                  where    
                                                          c.sales_no   =   d.sales_no   and   d.status   =   1)  
  from  
          SaledProduct   a,  
          SalesInfo         b  
  where  
          a.sales_no   =   b.sales_no  
          and  
          b.status   =   1  
  order   by  
          a.sales_noTop

2 楼sasacat(傻傻猫)回复于 2005-08-04 17:14:45 得分 0

SELECT   sp.sales_no,   sp.saled_prod,    
                (select   count(*)   FROM   SalesInfo   si   ,     SaledProduct   sp      
                                                  WHERE   si.status   =   1  
                                                      and   si.sales_no   =   sp.sales_no)AS   total_sales,  
                (select   sum(saled_prod)   FROM   SalesInfo   si   ,     SaledProduct   sp      
                                                  WHERE   si.status   =   1  
                                                      and   si.sales_no   =   sp.sales_no)AS   total_saled_prod  
  FROM   SalesInfo   si   ,  
              SaledProduct   sp      
  WHERE   si.status   =   1  
  and   si.sales_no   =   sp.sales_no  
   
  Top

3 楼sasacat(傻傻猫)回复于 2005-08-04 17:16:21 得分 0

唉,慢了一点。没看到楼上得...  
   
  你已经有两颗星星了,怎么还抢分这么用力呀,哼哼Top

4 楼jakexue31(anni)回复于 2005-08-04 21:22:15 得分 0

heheTop

5 楼frank_laic(笨蛋的右手)回复于 2005-08-04 23:32:42 得分 0

学习ING  
  Top

相关问题

  • Group by
  • 使用Tquery进行查询,出现错误:When GROUP BY exists, every simple field in projectors must be in GROUP BY.这是怎么回事?
  • 这个警告是为什么?Warning: skipping non-radio button in group.
  • 这个警告Warning: skipping non-radio button in group.是为什么?
  • 这种情况怎么Group?
  • Group by不过这样写的吗?
  • 这个group by 语句怎么写?
  • 这个GROUP BY语句该怎么写?
  • 求救啊,又是group by 的问题
  • 不group by但是要max()如何处理?

关键词

  • sales
  • salesinfo
  • saledproduct
  • prod
  • si
  • sp
  • total
  • status
  • sum
  • where

得分解答快速导航

  • 帖主:trls

相关链接

  • SQL Server类图书

广告也精彩

反馈

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