首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请求高人帮助!解决办法

2012-03-09 
请求高人帮助!!实在是想了半天想不出来了,请求帮助啊SQL codeselect u.nickname,u.uid,(select count(1) f

请求高人帮助!!
实在是想了半天想不出来了,请求帮助啊

SQL code
select u.nickname,u.uid,(select count(1) from tbl_daily d where d.D_Uid=u.uid AND '2012-02-14'<=d.D_Submitted and d.D_Submitted<='2012-02-15') as cnt  from dnt_users u where u.groupid in(1,14,15,8,3,18) group by u.username;

nickname uid cnt
ren 32 0
test 6 1
MEKAR 33 0
迷恋 5 0
新手 40 0
新手 36 0

这样能查出来当天的记录,但是怎么样得到相反的结果? 比如test是有数据的cnt则显示0,其他都显示1,因为其他都没有数据,因为是当天记录,只能有1,如果查询本周记录,则星期一到今天星期三 test有3天的记录,其他有1天的记录,则test还是显示0,其他的显示2,test有14条数据,其他只有3条,则应该显示test是1,其他是12

注:一天只能有1条记录 ,真是想了半天想不出来啊,请求帮助,不知道说的够清楚不?



[解决办法]
SQL code
select u.nickname,u.uid,isnull(d.cnt,0) as cntfrom dnt_users uleft join (select D_Uid,count(1) as cnt from tbl_daily  '2012-02-14'<=d.D_Submitted and d.D_Submitted<='2012-02-15') don d.D_Uid=u.uid AND  where u.groupid in(1,14,15,8,3,18)
[解决办法]
探讨
我看了也晕了,说的太罗嗦,就第一个把,怎么样得到test显示0其他显示1

热点排行