`
xnk9499
  • 浏览: 38300 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server 递归实现

    博客分类:
  • SQL
 
阅读更多

需求:

根据查询传入的参数,自动带出区间内的数据,表中有数据的状态显示已登入,无数据的状态显示未登入

 

问题:

目前系统中,只存有已登入的资料,且前台查询时输入的日期区间间隔不固定。

 

表结构如下:

门店表:存储门店明细信息

门店业绩表:存储门店每日业绩(需要门店每日登入当天的业绩,未登入的天,系统中则不存在此记录)

 

 

实现难点,需要用一个查询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中的递归

    sqlserver递归查询树结构的表的根结点子最里层的子结点

    sql server 2008 递归查询所有上级或下级数据

    在SQL Server 2008中实现递归查询来获取所有上级或下级数据是一项非常实用的技术,尤其是在处理具有层次结构的数据时。本篇将详细解释如何利用Common Table Expressions (CTE)来完成这样的查询,并对提供的示例代码...

    SQL sever 中递归查找子节点和父节点

    下面将详细介绍如何使用 SQL Server 实现递归查找子节点和父节点。 创建表 首先,我们需要创建一个表来存储树形结构的数据。在这个示例中,我们创建了一个名为 `t_part` 的表,包含三个字段:`zjid`(自己的编号)...

    sql将多行数据生成一个一个字符患的递归脚本

    将多行数据生成一个一个字符患的递归脚本,方便,快捷。要顶哦。

    sqlserver 2005 使用CTE 实现递归

    ### SQL Server 2005 中使用 CTE 实现递归 #### 一、CTE 递归原理 在 SQL Server 2005 中,使用公共表表达式(Common Table Expression, CTE)实现递归是一种高效且直观的方式。递归 CTE 通常由两部分构成:定位...

    SQL SERVER 列表菜单递归处理方式以及大小节点排序

    当初花了很长时间查资料、逛博客 终于搞定的排序 以及对于处理菜单列表显示的 问题。希望对你们有帮助。压缩包包含数据表创建脚本 以及 实现功能的语句 表结构字段 id、name、url、pid、indexs

    sql server实现递归查询的方法示例

    本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下: 有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用 sql ...

    SQL Server CTE 递归查询全解1

    SQL Server中的递归查询主要通过CTE(公共表表达式)来实现,它是一种非常强大的工具,特别适用于处理层次结构数据。CTE是T-SQL脚本中的临时结果集,可以用于复杂的查询,尤其是需要递归操作的情况。本文将深入探讨...

    sql server递归子节点、父节点sql查询表结构的实例

    在SQL Server中,可以使用Common Table Expression(CTE)结合递归来实现这个功能。`deptTab`是存储部门信息的表,其中`pid`代表父部门ID,`id`是部门ID。以下是如何查询当前部门(由`@id`参数指定)的所有子部门: ...

    SQL 递归查询,并将结果集保存在临时表中

    在SQL中,递归查询是一种强大的工具,常用于处理层级数据,例如组织结构、树形菜单等。在给定的场景中,我们需要根据一个特定的节点ID查询出该节点及其所有子节点,并将这些结果存储在一个临时表中。以下是实现这一...

    用SQL Server显示树结构, 不用递归算法,不用游标,没有层次限制, 速度很快

    -- 用SQL Server显示树结构, 不用递归算法,不用游标,没有层次限制, 速度很快 -- 显示、打印用起来很方便的 -- select * from Dept -- select * from dbo.GetDeptTree('00000000-0000-0000-0000-000000000000') ...

    SqlServer实现递归查询

    例如,现在需要查询出西湖区以及西湖区所属的市和省,这时候就需要用到SQL递归查询。我在这里构造了一张数据表[tb_Test],其数据如下所示: Id Name ParentId 1 浙江省 NULL 2 杭州市 1 3 湖州市 1 4 滨江区 2 ...

    SQLserver2008使用表达式递归查询

    在SQL Server 2008中,表达式递归查询是一种强大的工具,尤其适用于处理具有层级关系的数据,如组织结构、目录树或者分类系统。这种技术主要依赖于公用表表达式(Common Table Expression, CTE),它允许在单个查询...

    sqlserver中存储过程的递归调用示例

    递归式指代码片段调用自身的情况;危险之处在于:如果调用了自身一次,那么如何防止他反复地调用自身。也就是说提供递归检验来保证适当的时候可以跳出。 以阶层为例子说存储过程中递归的调用。 递归 CREATE PROC ...

    sql递归查询实例2

    根据提供的信息,我们可以深入探讨如何使用SQL递归查询来获取所有属于特定`upperid`的数据及其子树。这里的关键在于理解递归查询的工作原理,并通过一个具体的例子来演示这一过程。 ### SQL递归查询概念 在关系型...

    sqlserver实现树形结构递归查询(无限极分类)的方法

    在SQL Server中,实现树形结构递归查询是数据库管理中的常见需求,特别是在处理具有层级关系的数据时,如无限级分类。SQL Server 2005及以后版本引入了公用表表达式(CTE,Common Table Expression)来支持递归查询...

    ORACLE和SQL Server的语法区别

    为了实现层次结构查询,可以使用递归公共表表达式(Recursive CTEs)。 ```sql SELECT select_list [INTO new_table_] FROM table_source WHERE search_condition GROUP BY [ALL] group_by_expression [WITH...

    asp.net+sql server2000实现递归绑定树形控件

    本教程将详细介绍如何利用asp.net和SQL Server 2000实现递归绑定树形控件。 首先,我们需要理解递归的概念。递归是一种编程技巧,函数或方法调用自身以解决复杂问题。在树形控件的上下文中,递归通常用于遍历具有...

Global site tag (gtag.js) - Google Analytics