sql句子查询求大神解决

问题描述

sql句子查询求大神解决

具体的我忘了,大致意思是,一个网站签到,第一天给1积分第二天给2积分,第三天给3积分。。。。。到第六天为止,其中如果忘签到一天,则下次从第一天开始计算,问这个人一共的多少积分?? 如果用存储过程怎么写
日期
2016-1-01, 2016-1-02,2016-1-03,2016-1-04,2016-1-05,2016-1-06,
2016-1-07,2016-1-08,2016-1-10,2016-1-11,2016-1-12,2016-1-13,
2016-1-15,2016-1-17,2016-1-18

解决方案

这个好办,写个递归函数

 int <函数名>(<日期>)
{
int result=0;
if(<今日是否签到>)
{
result+=<函数名>(<昨日日期>)+1;
}else
{
result=0;
}
return result;
}

把六天的条件和累计条件写进去

解决方案二:

提供一种思路:如果你这个是第六天后有从一开始算的话,先把所有的数据存数组或者临时表都可以,查询前面连续的天数+1,然后对6取余,最后所有想加。如果连续的第7天是7的话,查询前面的天数+1,最后所有的想加即可。PS:不是很清楚你这里连续6天后是重头计算还是,从1开始。

解决方案三:

这个语句得到签到某天,前5天签到情况,为了简化说明,把日期字段当作数字来处理,你自己可以替换成实际的计算日期天数差的函数
select d
,(select count(*) from t where d=t1.d-1) d1
,(select count(*) from t where d=t1.d-2) d2
,(select count(*) from t where d=t1.d-3) d3
,(select count(*) from t where d=t1.d-4) d4
,(select count(*) from t where d=t1.d-5) d5
from t t1

然后你就可以用case自己计算了
select d,
case d1 when 1 then case d2 when 1 then case d3 when 1 then
case d4 when 1 then case d5 when 1 then 6 else 5 end
else 4 end else 3 end else 2 end else 1 end
from 刚才查询

就是每天的积分获得,然后你自己sum一下就是全部积分了

解决方案四:

加一个字段 连续签到天数:n
根据n 计算一下就行了, 前台还可展示一下 连续签到天数

时间: 2024-08-03 02:34:13

sql句子查询求大神解决的相关文章

sql语句转换成hql求大神解决

问题描述 sql语句转换成hql求大神解决 具体sql语句如下,变成hql语句,请高手知道一下.select * from plan_run r where r.id in(select t.plan_run_waishi_user_id from PLAN_RUN_OA_USER t where t.oa_user_id= ?) 解决方案 from 实体类1 p where p.id in ( select i.id from 实体类2 i where i.useId = ? )注意hql里面

求大神解答数据库问题-简单的数据库查询问题,求大神解决!!HELP!

问题描述 简单的数据库查询问题,求大神解决!!HELP! SELECT buyplan.buyPlanNo,handState,buyplan.unitNo,buyplan.ownNo,ownof.ownName, unit.unitname,goodsNo,buyTypeNo,buyWayNo,goodsName,onePrice,calculateUnit,buyCount, totalPrice,technologyIndex,operatePeople,newAddTime,newAdd

oracle 求大神解决谢谢!!!! select报错怎么改 急急急

问题描述 oracle 求大神解决谢谢!!!! select报错怎么改 急急急 select mv.*,(select r.currency,trunc(r.rcv_date,'MM') as rcv_date,sum(decode(r.transaction_type, 'RECEIVE', 1, -1) * r.QUANTITY) from epms_erp_rcvqty_info r where r.LINE_LOCATION_ID = '33733' and r.rcv_date >=

think。php中怎么去掉重复的求大神解决

问题描述 think.php中怎么去掉重复的求大神解决 $st_huawu=$st_huawu->where(""rid<=150"")->select();用的是查询多条里面有重复的怎么去掉 用->distinct(true) 不行. 解决方案 语句都没有,怎么给你看,把整个sql语句贴出来. 解决方案二: 打个断点,要SQL语句,你这是整个代码,没用!你也可以去网上搜搜怎么删除重复数据

数据仓库-SSIS 查找组件 自定义查询 求大神指导!

问题描述 SSIS 查找组件 自定义查询 求大神指导! 我正在使用SQLSERVER的SSIS处理数据,现在遇到一个问题:数据仓库中有一维度表A,A的主键由A_id和时间组成,A中还有一列是自己新加的自增长的SK,现在想通过A_id和时间来查找SK.事实表B有A_id和另一个相关的时间列(但B中时间不与A中相等),想用B表查找其对应的A表的SK,有人说要用查找组件的自定义查找,试了一下发现自己写的SQL不能用if else等的判断语句,这下该肿么办? T_T

链接数据库老是报数据类型无效……求大神解决……

问题描述 链接数据库老是报数据类型无效--求大神解决-- 链接数据库老是报数据类型无效--求大神解决-- 解决方案 检查下你这个ibatis_bm012_sql.xml的映射关系,以及IbatisDaoImpl类360行的查询语句设置的参数类型,配置和方法调用类型是否一致. 不介意的话,贴出配置文件和这个类的方法,让大家帮忙检查一下. 解决方案二: 你调用的存储过程 错误是你返回的值是无效的. 检查一下你存储过程的输出值得定义 解决方案三: 检查一下你的xml配置文件里面OUT参数的 jdbcT

access数据库-求大神解决啊,vs连接access出问题啦

问题描述 求大神解决啊,vs连接access出问题啦 我用visual studio2010链接access数据库出现下面第一张图的界面,根本无法选择数据库.只能链接sql数据库,出现第二张图的界面,这个是正常的.我又下载了vs2013,结果也是不能连access,请问我电脑设置或哪儿有什么问题,问题在哪啊?急求! 解决方案 安装了access的啊,怎么个区分法 解决方案二: 你的图也看不清楚,microsoft access安装了吗?需要这个驱动.还有数据库32位.64位区分要注意. 解决方案

sql-SQL 查询 求大神指点?急。。急

问题描述 SQL 查询 求大神指点?急..急 怎么在登录表中查询一段时间内登录超过三次的玩家ID,一天内登录次数大于1只算登录1次,表中的列有登录ID,登录时间. 解决方案 应该这样写:select 玩家ID from 表名 group by 玩家ID having count(玩家ID) >3 解决方案二: select * from(select idcount(*) cnt from table 登陆时间 = 今天 group by id) where cnt >1 解决方案三: 数据库

phpmyadmin-phpadmin问题。求大神解决

问题描述 phpadmin问题.求大神解决 ![CSDN移动问答][1] 访问http://localhost/phpmyadmin/ 出现下面网页. Index of /phpmyadmin Parent Directory .coveralls.yml CONTRIBUTING.md ChangeLog DCO LICENSE README RELEASE-DATE-4.2.0-beta1 browse_foreigners.php changelog.php chk_rel.php com