sql按日期统计

我有一张表用于记录用户的访问IP,表结构是:ip、time,UserID。我想写个sql语句来统计每天访问的IP次数,我写了入下的语句selectconvert(varc... 我有一张表用于记录用户的访问IP,表结构是:
ip、time,UserID。
我想写个sql语句来统计每天访问的IP次数,我写了入下的语句
select convert(varchar(20),time,112),count(ip)
from Web_User
group by convert(varchar(20),time,112) order by convert(varchar(20),time,112)
这样写是可以统计出每天的访问次数,但是如果有一天没有一次访问那么,会出现
这天没有统计,例:
时间 次数
20101022 70
20101023 107
20101025 23
20101026 27
24号就没有记录,要想要的效果是,如果当天没有记录那么统计结果就应该为0
请各位高手帮忙
展开
 我来答
百度网友009ed56
推荐于2016-05-20 · TA获得超过128个赞
知道答主
回答量:78
采纳率:0%
帮助的人:80.2万
展开全部
思路:先建一个中间表 sys_date(s_date var(8))
接着,把每天数据插入。
最后进行关联查询。
查询实例:
SELECT nvl(CONVERT(VARCHAR(20), TIME, 112),0), COUNT(IP)
FROM WEB_USER join sys_date on CONVERT(VARCHAR(20), TIME, 112)=sys_date.s_date
where sys_date.s_date >='20100101'
and sys_date.s_date <='20100131'
GROUP BY CONVERT(VARCHAR(20), TIME, 112)
ORDER BY CONVERT(VARCHAR(20), TIME, 112)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qmaqxh
2010-12-10 · TA获得超过369个赞
知道答主
回答量:327
采纳率:0%
帮助的人:246万
展开全部
这个应该再多一个表,逻辑清晰些.
上边的这个表用于统计每天的打卡起止时间
下边的这个表用于统计每天的小时数,和每天的工资数.
id 编号 姓名 日期 开始时间 结束时间 小时工资
1 1001 黑子 2008-05-21 11:00 12:00 20
程序在每天的最后一小时取表中属于今天的记录,用日期字段来判断第一次和最后一次(最早的时间记录和最后的时间记录),获得小时数.然后用获得的小时数*小时工资.插入到第二个表里.
id 编号 姓名 日期 工作小时 总工资
1 1001 黑子 2008-05-21 1 20

除此之外,建议再多一个用户表.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yjjgenery
2010-12-09 · TA获得超过324个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:165万
展开全部
加上vnl()函数就可以,如果没值就会自动补0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式