我现在只写出了查询总登陆次数
public DataSet Selectt()
{
string sql = string.Format(@"SELECT u.UserName , COUNT(*) as count
FROM UserInfo u ,logo l where l.UserID=U.UserID
GROUP BY UserName,UserData");
return DBHelper.Query(sql);
}
然而我现在需要用用户每天的登陆次数查找出每天第一次的登陆记录然后把第一次记录加上每日登陆奖励
那你首先得有登录的数据吧?
这个当然有的呀 就是想写出用户每天第一次登陆时候会获得奖励积分
@马骉骉:
select u.UserName,(select count(1) from 登录记录表 t where t.UserId=u.UserId and t.创建时间>='2016-8-8' and t.创建时间<'2016-8-8') '登录次数' from UserInfo u
大致就是这样,你的登录记录表就是叫logo???
@顾晓北: 嗯 是的 创建时间是什么啊 '2016-8-8'这个为什么是死的呢。。
@马骉骉: 没看到还是你,就是你不是是今天的次数么?得限制今天,我写的是死的,你自己改成用时间函数比较就行了。。。
@顾晓北: 哦 好的 可是我按照你的这个写了一个登陆次数都是0 额。。
哈哈哈 我自己一个人写一个项目 每天问题有点多。。
@马骉骉: 登录次数都为0?你把两个表都截图出来一些数据吧,为0就是确实没有数据呗。。。
@顾晓北: 没有申请博客不能上传图片,,
@马骉骉: 应该可以直接写HTML,然后链接到一个图片地址吧?
select count(1)from 用户表 where 用户id=@用户id and 登录时间>datetime.now.date
大神专家 可是我并没有写存储过程呀。。~存储过程还没有特别会
@马骉骉: 这个跟存储过程有个屁关系.一看就是新人.我是不会写存储过程的.
就是你的登录记录表要有登录时间字段.判断登录时间大于今天00:00:00的数量就是了
你这是sqlserver12的写法么?datetime.now.date,可以这么用?
@顾晓北: 你难道不是从代码里传参数进去吗?
@吴瑞祥: 哦哦~
@顾晓北: 嗯嗯呢 好的
@吴瑞祥: 有传参呀 也有从数据库调用 那现在按照你的思路就是得加一个每天每个人登陆时间 然后再来判断最早的时间对吧
@吴瑞祥: 不用吧?你判断的是今天的时间,还用传么?直接datecompare函数吧。
@马骉骉: 不是.是我写错了.是from用户登录记录表.不是用户表.
在记录表中count(1) 条件是 登录时间>今天凌晨
今天有没登录过.直接判断结果就好了.
PS:觉得自己好傻
@顾晓北: 个人习惯.我不写sql的.都使用dal层封装
@吴瑞祥: 今天有登陆过害的查找第一天登陆的记录啊
没有 其实思路我懂 就是不会写sql语句的。。
按照userId,登录日期,进行group by,然后取count。
select count(1)from 用户表 where 用户id=@用户id and 登录时间>datetime.now.date