请问如果构造这条SQL语句??

danjingwu 2005-01-07 10:42:17
我有两个表,一张是会员信息表,一张是会员发表文章的表
会员信息表(userinfo)如下:
userid nickname logintime(最后登陆时间)
1 aa 2005-1-3
2 bb 2005-1-2
3 cc 2005-1-6
4 dd 2005-1-7

会员发表文章表(article)如下:
id userid title
1 1 AA
2 1 BB
3 2 CC
4 3 DD
5 3 EE
6 4 FF
7 3 GG
8 1 II

假如今天是2005-1-8
1。我想统计2天前有登陆本站的且发表的文章数少于2的会员资料
2。article表中,会员发表的文章数各是多少篇

请问各位如果构造这两条SQL语句,我对这个了解比较少,呵呵,谢谢!
...全文
143 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjjf 2005-01-07
  • 打赏
  • 举报
回复
1.拷贝错了
select * from userinfo A
where
logintime > dateadd(dd,getdate(),-2)
and
exists
(
select userid from article B where a.userid=b.userid group by userid having count(*) < 2
)
sjjf 2005-01-07
  • 打赏
  • 举报
回复

2.
select userid ,count(*) from article group by userid
sjjf 2005-01-07
  • 打赏
  • 举报
回复
1.

select * from userinfo
where
logintime > dateadd(dd,getdate(),-2)
and
exists
(
select userid from article group by userid having count(*) < 2
)


超级大笨狼 2005-01-07
  • 打赏
  • 举报
回复
时间段相关:
sql="select id,classid,classname,xiaoshoue,xiaoshou,jinhuo,kucun,addtime "
sql=sql&" from xiaoshou where addtime between '" & format(starttime,"yyyy-mm-dd") & "' and '" & format(endtime,"yyyy-mm-dd") & "'"
sql=sql&" order by id desc"

SELECT Fylb,Pm,Gg,Dw,Dj,Sl,Je FROM cqyzypzx where zxdate between {^2003-7-1} and {^2003-8-1}

近两个星期
sql="select * from table where datediff(week,riqi,getdate())<=2"

近三个月
sql="select * from table where datediff(month,riqi,getdate())<=3"

近一年
sql="select * from table where datediff(year,riqi,getdate())<=1"
dh20156 2005-01-07
  • 打赏
  • 举报
回复
2.TRY:
select userid,count(userid) as tnum from article group by userid
crazydreamer 2005-01-07
  • 打赏
  • 举报
回复
1.sql="select * from userinfo where datediff(day,logintime,getdate())>2 and userid not in(select userid from article group by userid having count(1)>=2)"
2.sql="select userid,count(1) as publishnum from article group by userid"
若白师妹 2005-01-07
  • 打赏
  • 举报
回复
2。article表中,会员发表的文章数各是多少篇
select userid as 会员名称,count(userid) as 会员发表的文章数 from article group by userid
dh20156 2005-01-07
  • 打赏
  • 举报
回复
1.TRY:
Select * from userinfo where datediff(d,logintime,'2005-1-8') > 2 and userid in (select userid from article group by userid having (count(userid)<2))
klend 2005-01-07
  • 打赏
  • 举报
回复
不好意思,错了
select userid,count(userid) as titlenum from article group by userid having count(userid) < 2

2。select userid,count(userid) as titlenum from article group by userid

titlenum字段就是每个userid对应的文章数
若白师妹 2005-01-07
  • 打赏
  • 举报
回复
1。我想统计2天前有登陆本站的且发表的文章数少于2的会员资料
select count(userid),nickname from userinfo,article where userinfo.userid=article.userid and datediff(dd,userinfo.logintime,getdate)=2 group by userid,nickname having count(userid)<2

随便写的,可能有错误
klend 2005-01-07
  • 打赏
  • 举报
回复
1。
select userid,count(userid) as titlenum from article group by userid having count(userid) > 2
danjingwu 2005-01-07
  • 打赏
  • 举报
回复
我的数据库是SQL Server的,那要怎么建查询啊?
jincaogg 2005-01-07
  • 打赏
  • 举报
回复
其实,这些,你不知道很清楚的,可以在ACCESS 里建个这样的查询,然后在切换到SQL视图就可以看见了
sjjf 2005-01-07
  • 打赏
  • 举报
回复
如果数据库不支持 日期型数据直接比较的话,那么logintime > dateadd(dd,getdate(),-2)就会出错。
虽然这条sql没有调试,但是它应当是高效的。
尚和空四 2005-01-07
  • 打赏
  • 举报
回复
错了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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