Chinaunix首页 | 论坛 | 博客
  • 博客访问: 486131
  • 博文数量: 105
  • 博客积分: 2922
  • 博客等级: 少校
  • 技术积分: 1113
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-02 16:30
文章分类

全部博文(105)

文章存档

2018年(1)

2016年(2)

2015年(3)

2014年(6)

2013年(21)

2012年(10)

2011年(8)

2010年(7)

2009年(31)

2008年(16)

我的朋友

分类: 数据库开发技术

2008-07-10 13:57:59

MSSQL题目:
条件是有多个店铺比如:001,002,003
我需要查询各个店铺的某天开卡的人数
如果只有001在这天有开卡人的话
查询应该这样显示:
001 32 20080706
002 0  20080706
003 0  20080706

32是总共的开卡人数 ,如果为0的的要显示出来为0.
 
vIEW_MEMBERINFO_STAT 视图包含所有的店铺以及开卡信息;
bs_shop 表包含了所有店铺ID;
 
实现:
-------------------------------------------------------------------------
select bs.COMPANYNO,bs.shopid,nvl(mm.count,0) d
 from (    
   select a.COMPANYNO,a.shopid,count(a.SHOPID) count
   from vIEW_MEMBERINFO_STAT a
   where to_char(a.begindate,'YYYY-MM-DD') <='200866' and a.state ='1'
   group by a.COMPANYNO,a.shopid
  
  )  mm  right join bs_shop bs on (mm.SHOPID  = bs.SHOPID )
 order by bs.shopid
上述SQL文右连接到所有的店铺ID表。可以吧当天开卡数为0的记录也罗列出来。
阅读(773) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~