需求:
根据查询传入的参数,自动带出区间内的数据,表中有数据的状态显示已登入,无数据的状态显示未登入
问题:
目前系统中,只存有已登入的资料,且前台查询时输入的日期区间间隔不固定。
表结构如下:
门店表:存储门店明细信息
门店业绩表:存储门店每日业绩(需要门店每日登入当天的业绩,未登入的天,系统中则不存在此记录)
实现难点,需要用一个查询SQL,生成选择的日期区间的数据
幸好在SQL Server 2005及以后的版本中,出现了递归的功能,
用一下语句,实现了产出不定区间的日期数据记录:
WITH DT AS ( SELECT cast( DateStart as datetime) as ep_date UNION ALL SELECT DATEADD(Day,1,ep_date) FROM DT WHERE DATEADD(Day,1,ep_date) <=cast(DateEnd as datetime) ) Select * from dt
之后,再改写以上的SQL ,实现需求:
WITH DT AS ( SELECT cast( DateStart as datetime) as ep_date UNION ALL SELECT DATEADD(Day,1,ep_date) FROM DT WHERE DATEADD(Day,1,ep_date) <=cast(DateEnd as datetime) ) Select c.*,case when d.status is null then 1 lese 2 end as status (Select a.ep_date,b.counter_no from dt a,counter b) c left join performance d on c.counter_no=d.counter_no and c.ep_date = d.ep_date
相关推荐
sqlserver递归查询树结构的表的根结点子最里层的子结点
sql server 2008 递归查询所有上级或下级数据
将多行数据生成一个一个字符患的递归脚本,方便,快捷。要顶哦。
当初花了很长时间查资料、逛博客 终于搞定的排序 以及对于处理菜单列表显示的 问题。希望对你们有帮助。压缩包包含数据表创建脚本 以及 实现功能的语句 表结构字段 id、name、url、pid、indexs
详细描述在sqlserver 2005 中通过使用CTE 实现递归的方法
本文通过实例给大家介绍了sql server递归子节点、父节点sql查询表结构的实例解析,非常不错,具有参考借鉴价值,需要的的朋友参考下
-- 用SQL Server显示树结构, 不用递归算法,不用游标,没有层次限制, 速度很快 -- 显示、打印用起来很方便的 -- select * from Dept -- select * from dbo.GetDeptTree('00000000-0000-0000-0000-000000000000') ...
本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下: 有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用 sql ...
递归式指代码片段调用自身的情况;危险之处在于:如果调用了自身一次,那么如何防止他反复地调用自身。也就是说提供递归检验来保证适当的时候可以跳出。 以阶层为例子说存储过程中递归的调用。 递归 CREATE PROC ...
asp.net+sql server2000实现递归绑定树形控件
例如,现在需要查询出西湖区以及西湖区所属的市和省,这时候就需要用到SQL递归查询。我在这里构造了一张数据表[tb_Test],其数据如下所示: Id Name ParentId 1 浙江省 NULL 2 杭州市 1 3 湖州市 1 4 滨江区 2 ...
给定一个节点ID,查询此节点下的全部节点,并将结果集保存在临时表中
想用递归sql语句把所有属于某个upperid的数据,包括它的子树,都读出去, 比如说 upperid =2 那么先找到1,3,然后再由1,3找到4,5 id upperid ----------- ----------- 1 2 3 2 4 1 5 3 6 4 upperid=2查询结果 id ...
SQL Server 存储层级数据实现无限级分类,非递归存储过程无限级分类,左右值分类
insert into dbo.hierarchy values(1,0,'河南省') ,(2,1,
-- 用SQL Server取得树节点路径, 不用递归算法,不用游标,没有层次限制, 速度很快 -- 显示、打印用起来很方便的 -- print dbo.GetDeptPath('5cb3c3ee-4b2b-4005-8037-bb3876663d2e','->') -- select * from Dept
使用SQL Server存储过程递归遍历层次结构.pdf
代码如下:–由父项递归下级 with cte(id,parentid,text) as (–父项 select id,parentid,text from treeview where parentid = 450 union all –递归结果集中的下级 select t.id,t.parentid,t.text from treeview as...