请求高人帮助!!

hellNo 2012-02-15 04:53:27
实在是想了半天想不出来了,请求帮助啊

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条记录 ,真是想了半天想不出来啊,请求帮助,不知道说的够清楚不?

...全文
75 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellNo 2012-02-15
  • 打赏
  • 举报
回复
算了,解决了,结贴~!!!
hellNo 2012-02-15
  • 打赏
  • 举报
回复
本星期的呢? 比如今天星期三,这周过了3天,test是2,其他是1,则test显示0,其他是2 ,这应该怎么写?
我给你加分!
[Quote=引用 4 楼 ap0405140 的回复:]

引用 2 楼 imtns59521 的回复:
我看了也晕了,说的太罗嗦,就第一个把,怎么样得到test显示0其他显示1

SQL code

select u.nickname,u.uid,
case when (select count(1) from tbl_daily d
where d.D_Uid=u.uid AND '2012-02-14'<=d.D_Submitted an……
[/Quote]
唐诗三百首 2012-02-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 imtns59521 的回复:]
我看了也晕了,说的太罗嗦,就第一个把,怎么样得到test显示0其他显示1
[/Quote]

select u.nickname,u.uid,
case when (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')=0
then 1 else 0 end as 'cnt'
from dnt_users u
where u.groupid in(1,14,15,8,3,18)
group by u.username;
FlySQL 2012-02-15
  • 打赏
  • 举报
回复
select u.nickname,u.uid,isnull(d.cnt,0) as cnt
from dnt_users u
left join
(select D_Uid,count(1) as cnt from tbl_daily
'2012-02-14'<=d.D_Submitted and d.D_Submitted<='2012-02-15'
) d
on d.D_Uid=u.uid AND
where u.groupid in(1,14,15,8,3,18)
hellNo 2012-02-15
  • 打赏
  • 举报
回复
我看了也晕了,说的太罗嗦,就第一个把,怎么样得到test显示0其他显示1[Quote=引用 1 楼 yanbuodiao 的回复:]
[/Quote]
烟波钓 2012-02-15
  • 打赏
  • 举报
回复
晕了~~

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧