使用动态层次结构 SQL Server

2024-07-03

我在 SQL Server 中有以下数据集

层次结构表:

 Report   |   Immediate Parent
 Child1       Parent1
 Child2       Parent1
 Child3       Parent2
 Parent1      Grandparent1
 Parent2      Grandparent1

数据表(仅适用于基础级别的儿童):

Report   |   Sales
Child1       1000
Child2       1000
Child3       1000

由此我需要创建一个数据集,其中包含

Report      |   Sales
Parent1         2000
Parent2         1000
Grandparent1    3000

我不知道会有多少层次,可能是伟大的*10祖父母。我对这个问题的解决方案是使用递归和动态 SQL 不断为每个层次结构级别创建临时表,即

  • 为父级创建临时表,将数据表连接到层次结构表并求和(销售额)

  • 为祖父母创建临时表,将父临时表连接到层次结构表并求和(销售额)

  • 冲洗并重复,直到没有行受到影响 (@@rowcount)

  • 将所有临时表合并到永久表中


然而,通过阅读论坛,我了解到:

  • 应该避免递归,
  • 应避免动态 SQL,
  • 应避免@@Rowcount

我的问题是,如何在不使用所有这些不良做法的情况下解决问题?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用动态层次结构 SQL Server 的相关文章

  • 与选择顶部相反

    Transact SQL 有一个方便的SELECT TOP 4 whatever FROM 我想做一个 SELECT 查询 返回表中的最后 n 个条目 而不是第一个条目 这是我用来返回在表中输入的前四个项目的查询 使用 SELECT TOP
  • 如何在 JSF 2 中以编程方式或动态创建复合组件

    我需要在 JSF 2 中以编程方式创建复合组件 经过几天的搜索和实验 我找到了这个方法 深受 java net 上的 Lexi 的启发 Method will attach composite component to provided c
  • 如何在 JSF 2 中以编程方式或动态创建复合组件

    我需要在 JSF 2 中以编程方式创建复合组件 经过几天的搜索和实验 我找到了这个方法 深受 java net 上的 Lexi 的启发 Method will attach composite component to provided c
  • 将图像保存到数据库

    我有一些简单的实体 现在需要有一个个人资料图像 执行此操作的正确方法是什么 因此 这是一对一的关系 一张图像仅与一个实体相关 反之亦然 该图像应通过网络表单上传并插入相关实体 如果有人能指出如何将图像持久保存到数据库和相关实体的正确方向 那
  • SQL 查询、执行计划和“并行性”

    因此 我 仍然 正在经历一些缓慢的遗留 SQL 视图 用于计算 有时 大量数据的一些平均值和标准差 我最终得到的是视图连接视图连接视图等 所以我想我会检查查询的执行计划 它立即提示缺少索引 然后我实施了该索引 但它仍然慢得令人难以忍受 慢到
  • 将表复制到不同 SQL Server 上的不同数据库

    我想将一个表从一个数据库复制到另一个数据库 我知道如果数据库位于同一个 SQL Server 上 您可以轻松执行以下操作 SELECT INTO NewTable FROM existingdb dbo existingtable 如果数据
  • SQL Server 2012:插入和触发器之间的 DATETIME 差异

    我们遇到了一个非常奇怪的问题 当打电话时GETUTCDATE 第二个语句中的返回值比第一个语句稍早 我们的场景如下 我们插入一个表来跟踪用户当前状态 该表有一个触发器 可以将用户过去状态的关联历史表插入到DATETIME字段和插入调用GET
  • 无法让链接服务器在 Sql Azure 中工作

    我们正在使用 Azure 的试用版 我们正在尝试从我们内部的 SQL Server 2012 执行跨服务器查询 我们似乎已经将我们本地的 2012 年与 Azure 联系起来了 当我进入Server Object gt Linked Ser
  • SQLConnection.Open();抛出异常

    更新旧软件 但为了保持向后兼容性 我需要连接到 mdb 访问 数据库 我使用以下连接但不断出现异常 为什么 我已经验证了路径 数据库存在等 这一切都是正确的 string Server localhost string Database d
  • 实体框架和 SQL Server 同义词

    仓促的研究告诉我 即使 EF4 仍然不支持 SQL Server 同义词 设置基于同义词的实体集 就像基于表的实体集一样 有哪些选项 我想出的最简单的方法是复制同义词的基础表 将其添加到我的模型中 然后重命名商店模型中的实体集 使用 POC
  • 调用存储过程、传递 NULL 值、处理布尔值

    调用存储过程时 我将值连接在一起 我的问题是如何调用存储过程但在其中一个参数中发送 NULL 值 假设 AID null 但如果我将其传递给我的查询 我会收到错误 QueryConn Execute Search Res Count Acc
  • 比较跨多个数据库的存储过程 (SQL Server)

    SQL 大师 我们的架构由多个客户数据库和一个公共代码库组成 当我们部署数据库更改时 必须针对每个数据库运行脚本 由于部署问题 我们的存储过程有时会彼此不同步 我想创建一个脚本来返回这些不匹配的过程 以确保我们在部署后拥有数据库的同步副本
  • 使用 SqlBulkCopy 插入 GUID

    我正在尝试使用以下命令进行批量插入SqlBulkCopy来自由 SQL Server 管理导入导出向导创建的平面文件的类 这些文件以逗号分隔 文件中的一行可能如下所示 DCAD82A9 32EC 4351 BEDC 2F8291B40AB3
  • 是否有一个表保存 sysobjects.xtype 描述的列表?

    根据sysobjects 文档 https msdn microsoft com en us library ms177596 aspx sysobjects xtype可以是以下对象类型之一 xtype Description AF Ag
  • PHP SQLSRV:sqlsrv_query() 是否可以正确地准备 select 语句?

    TL DR Does sqlsrv query 做同样的工作select陈述比sqlsrv prepare and sqlsrv execute 关于准备好的陈述 做什么 我怎样才能做一个安全的select陈述 一点历史 我是 PHP 开发
  • TSQL 时间序列模式数据挖掘

    获取一个包含以下 3 个字段的 SQL 表 Id TimeStamp Item UserId 我想确定最常见的序列Item for a UserId在一次会议中 会话将简单地由时间阈值来定义 即 如果 X 分钟内没有完整的条目 则任何未来的
  • 如何改变Java中数组的长度? [复制]

    这个问题在这里已经有答案了 所以我被分配了一个项目 其中有一个数组 当用户将元素放入该数组时一旦装满 它的长度必须加倍 We are 不允许使用ArrayList或任何内容集合接口 我想做的是创建一个新数组 一旦旧数组已满 然后将值复制到新
  • 超过 1 列具有 string_agg 的唯一值

    我正在尝试分组并获取多列的值列表 这是一个例子 City State Income Salem OH 40000 Salem OH 45000 Mason OH 50000 Dayton OH 60000 Salem MA 40000 Ma
  • Solrj 和动态字段

    我有一个 solr 模式 其中包含不同类型的动态字段 例如 在 schema xml 中有
  • IF 语句中间的 GO 命令

    我正在寻找有关创建表的信息 仅当它们在当前数据库中不存在时 以便能够在可能或可能没有它们的不同数据库中创建它 并发现这两个有用的主题 SQL Server 检查表是否存在 https stackoverflow com questions

随机推荐

  • 将数组推入同一个数组 javascript

    我试图将一个数组推入 JavaScript 中的同一个数组中 但它似乎不起作用 到目前为止 这是我的代码 var arr Hello World arr push arr console log arr 预期输出 Hello World H
  • 如何在 Typescript 类中创建 Angular 5 HttpClient 实例

    我正在编写一个包含 httpClient 的基类 它用于进行 REST api 调用 如果在构造函数中定义 则 httpClient 变量设置正确 但在私有变量中未定义 这是我的示例代码 Injectable export class My
  • 如何解析 iOS 4.0 iTunes 备份中的 Manifest.mbdb 文件

    在 iOS 4 0 中 Apple 重新设计了备份流程 iTunes 过去在 Manifest plist 文件中存储与备份文件关联的文件名列表 但在 iOS 4 0 中 它已将此信息移至 Manifest mbdb 您可以通过使用 iOS
  • Spring Boot 不运行单元测试

    如何在使用构建和部署时运行 Spring Boot 应用程序的单元测试spring boot run命令 我的期望是在运行应用程序之前执行所有单元测试 但我不想创建另一个 Maven 命令 例如mvn test before 我的问题 我制
  • Spring Boot 不运行单元测试

    如何在使用构建和部署时运行 Spring Boot 应用程序的单元测试spring boot run命令 我的期望是在运行应用程序之前执行所有单元测试 但我不想创建另一个 Maven 命令 例如mvn test before 我的问题 我制
  • 使用手动设置凭据时,EWS 自动发现停止工作

    我遇到了一个非常奇怪的问题 我确信这只是我忽略的一些愚蠢的事情 使用 EWS 托管 API 我尝试连接到邮箱以读取联系人 最初 我使用默认凭据 在这种情况下自动发现有效 问题是 稍后我们想要在服务器上运行它并模拟用户 所以我通过手动指定凭据
  • 使用手动设置凭据时,EWS 自动发现停止工作

    我遇到了一个非常奇怪的问题 我确信这只是我忽略的一些愚蠢的事情 使用 EWS 托管 API 我尝试连接到邮箱以读取联系人 最初 我使用默认凭据 在这种情况下自动发现有效 问题是 稍后我们想要在服务器上运行它并模拟用户 所以我通过手动指定凭据
  • 如何获取德尔福不同时区的当前时间?

    如何获取德尔福不同时区的当前时间 如果我使用 TidSNTP 它只会提供我所在区域的时区 您可以轻松地将当地时间转换为不同的时区delphi tzdb Delphi 时区数据库 https github com pavkam tzdb 以下
  • 如何获取德尔福不同时区的当前时间?

    如何获取德尔福不同时区的当前时间 如果我使用 TidSNTP 它只会提供我所在区域的时区 您可以轻松地将当地时间转换为不同的时区delphi tzdb Delphi 时区数据库 https github com pavkam tzdb 以下
  • 钩住第三个 X 鼠标按钮吗?

    我用 C 编写了一个低级鼠标钩子 它应该捕获 XBUTTON 事件 对于第一个和第二个 xButton 它工作得很好 但我的鼠标上没有关于第三个 xButton 的消息 似乎没有可能的方法来捕获该按钮的事件 我有一个游戏鼠标 在前两 个 x
  • 读取 iso-8859-1 rss feed C# WP7

    我正在尝试读取使用 iso 8859 1 编码的 rss feed 我可以很好地获取所有元素 问题是当我将其放入文本块时 它不会显示所有字符 我不确定我做错了什么 我尝试了在谷歌上找到的一些解决方案 但这对我不起作用 我一定错过了一些东西
  • 读取 iso-8859-1 rss feed C# WP7

    我正在尝试读取使用 iso 8859 1 编码的 rss feed 我可以很好地获取所有元素 问题是当我将其放入文本块时 它不会显示所有字符 我不确定我做错了什么 我尝试了在谷歌上找到的一些解决方案 但这对我不起作用 我一定错过了一些东西
  • 使用 CSS 和 HTML 为不同的段落设置不同的样式

    我有一个关于在段落标签上使用类标签的问题 我希望外部 Css 文件以某种方式设置段落样式 同时将所有其他段落保留为默认样式 我做了一些谷歌搜索和阅读 发现如果我添加 p class somename 然后在 css 文件中我可以使用更改该段
  • 使用 CSS 和 HTML 为不同的段落设置不同的样式

    我有一个关于在段落标签上使用类标签的问题 我希望外部 Css 文件以某种方式设置段落样式 同时将所有其他段落保留为默认样式 我做了一些谷歌搜索和阅读 发现如果我添加 p class somename 然后在 css 文件中我可以使用更改该段
  • 在 docker 容器内挂载 cgroup

    我对一个遵循流程模型的组件进行了 Docker 化 主进程多次分叉自身 我想在 docker 容器内建立一个 cgroup 层次结构 以根据每个进程改变 CPU 和内存限制 有没有一种方法可以在不使用 privileged 或 CAP SY
  • 在 docker 容器内挂载 cgroup

    我对一个遵循流程模型的组件进行了 Docker 化 主进程多次分叉自身 我想在 docker 容器内建立一个 cgroup 层次结构 以根据每个进程改变 CPU 和内存限制 有没有一种方法可以在不使用 privileged 或 CAP SY
  • Visual Studio 项目的预构建任务在 GitLab Runner 中失败

    我编写了一个 Python3 脚本来创建一些 Qt 资源 rcc 和头文件 h 因为该脚本将在 Windows 和 macOS 上执行 所以我将 Qt 工具路径基于一个环境变量 称为QTBIN它指向 Qt 安装文件夹中的二进制文件夹 到目前
  • Visual Studio 项目的预构建任务在 GitLab Runner 中失败

    我编写了一个 Python3 脚本来创建一些 Qt 资源 rcc 和头文件 h 因为该脚本将在 Windows 和 macOS 上执行 所以我将 Qt 工具路径基于一个环境变量 称为QTBIN它指向 Qt 安装文件夹中的二进制文件夹 到目前
  • 使用动态层次结构 SQL Server

    我在 SQL Server 中有以下数据集 层次结构表 Report Immediate Parent Child1 Parent1 Child2 Parent1 Child3 Parent2 Parent1 Grandparent1 Pa
  • 使用动态层次结构 SQL Server

    我在 SQL Server 中有以下数据集 层次结构表 Report Immediate Parent Child1 Parent1 Child2 Parent1 Child3 Parent2 Parent1 Grandparent1 Pa