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

帮帮忙呀!!关于统计的查询!

楼主xiyang2170(夕阳)2004-11-03 08:42:27 在 MS-SQL Server / 基础类 提问

table   a                                 table     b                                                       table   c  
  pkid   deptname                     pkid       deptid       username                       pkid       userid       pay  
  1             hh                                 1               1                 aa                               1               1               10  
                                                    2               1                 bb                               2               1               10  
                                                    3               1                 cc                               3               2               10  
   
   
  a.pkid=b.deptid     AND   b.pkid=c.userid  
   
  结果是:  
  传一个a表中pkid,查找出b表中符合的信息,在到c表中分别统计pay的和,没有pay的为0。  
  pkid     username     pay  
    1             aa             20  
    2             bb             10  
    3             cc             0  
  这个pkid是b表中的pkid。  
                                                   
  问题点数:20、回复次数:4Top

1 楼xingfuniao(幸福鸟)回复于 2004-11-03 09:01:33 得分 5

select   c.pkid,b.username,(select   sum(c.pay)   from   c   where   c.pkid=a.pkid)   as   pay  
  from   c   inner   join   a   on   a.pkid=c.pkid  
  inner   join   b   on   b.pkid=c.pkid  
  where   a.pkid=你傳進去的idTop

2 楼jinjazz(近身剪)回复于 2004-11-03 09:07:39 得分 5

create   table   a  
  (pkid   char(10),  
    deptname   char(10))  
   
  create   table   b  
  (pkid   char(10),  
    deptid   char(10),  
    username   char(10))  
   
  create   table   c  
  (pkid   char(10),  
    userid   char(10),  
    pay   integer)  
   
  insert   into   a   select   '1','hh'  
  insert   into   b    
  select   '1','1','aa'  
  union  
  select   '2','1','bb'  
  union  
  select   '3','1','cc'  
   
  insert   into   c  
  select   '1','1',10  
  union  
  select   '2','1',10  
  union  
  select   '3','2',10  
   
   
  select   b.pkid,b.deptid,b.username,isnull(s.sumpay,0)   from   b   left   join      
  (select   userid,sum(pay)   as   sumpay   from   c   group   by   userid)   s  
  on   b.pkid=s.userid  
  inner   join   a   on   a.pkid=b.deptid  
  where   a.pkid=1  
  drop   table   a  
  drop   table   b  
  drop   table   cTop

3 楼rfq(任凤泉)回复于 2004-11-03 09:20:02 得分 5

select   b.username,isnull(sum(c.pay),0)   from   a   inner   join   b   on   a.pkid=b.deptid   left     join   c   on   b.pkid=c.userid   where   a.pkid=1   group   by   b.usernameTop

4 楼guanjueweimiao(感觉微妙)回复于 2004-11-03 09:25:17 得分 5

 
  select   b.pkid,b.username,he=isnull(sum(c.pay),0)   from    
  a   left   join   b   on   a.pkid=b.deptid   left   join   c   on    
      b.pkid=c.userid  
  where   a.pkid=所给pkid  
  group   by   b.pkid,b.usernameTop

相关问题

  • 查询统计
  • 查询统计求和
  • 查询和统计问题
  • 关于统计的查询
  • 查询统计问题?
  • 求最简统计查询!
  • 请教查询统计的SQL语句???
  • 查询统计与表格显示
  • 求SQL统计查询加速方法
  • 如下统计查询怎么写?

关键词

  • pkid
  • unionselect
  • deptid
  • pay
  • userid
  • join
  • username
  • aa
  • sum
  • bb

得分解答快速导航

  • 帖主:xiyang2170
  • xingfuniao
  • jinjazz
  • rfq
  • guanjueweimiao

相关链接

  • SQL Server类图书

广告也精彩

反馈

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