SQL Pivoting 问题 - 寻找更好的方法

2024-02-28

这是一个与 T-SQL 相关的问题。我正在使用 SQL Server 2012。

我有一个这样的表:

我想要这样的输出:

解释:

对于每个员工,都会有一行。一名员工有一项或多项任务。批次 ID 指定了这一点。根据批次 ID,列名称将会更改(例如国家/地区 1、国家/地区 2 等)。

到目前为止的方法:

取消透视源表,如下所示:

select 
    EmpId, 'Country ' + cast(BatchId as varchar) as [ColumnName], 
    Country as [ColumnValue] 
from 
    SourceTable
UNION
select 
    EmpId, 'Pass ' + cast(BatchId as varchar) as [ColumnName], 
    Pass as [ColumnValue] 
from 
    SourceTable

它将每列的值作为行给出。然后,可以对该结果进行旋转以获得所需的输出。

问题:

  • 有更好的方法吗?
  • 目前,我知道批次数量是固定的,但是,对于未来,如果我想使旋转部分动态化,最好的方法是什么?
  • 使用 SSIS 或 SSRS 等工具,动态处理枢轴是否更容易?

螺丝用 SQL 来做。

让 SSRS 为您完成工作MATRIX。它将为您进行 PIVOT,而无需创建动态 SQL 来处理需要了解所有列的可怕限制。

对于您的数据,您将使用 EMP ID 作为 ROW Group,将 PASS 作为列分组。

https://msdn.microsoft.com/en-us/library/dd207149.aspx https://msdn.microsoft.com/en-us/library/dd207149.aspx

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

SQL Pivoting 问题 - 寻找更好的方法 的相关文章

  • 如何在 T-SQL 中将 CSV 转换为记录集?

    在我的存储过程中 我传递一个过滤器 使用 WHERE Column IN 子句 作为参数 参数值以 CSV 形式给出 将此 CSV 转换为记录集的最佳方法是什么 例子 SELECT FROM Employee WHERE Name IN J
  • 存储过程 - 使用 NOT IN where 子句执行查询

    我有一个存储过程 Create PROCEDURE abc sRemovePreviouslySelectedWhereClause nvarchar max AS BEGIN SELECT FROM table WHERE nId NOT
  • T-SQL:如何使用 SELECT 创建表?

    在 oracle 中 您可以发出 create table foo as select from bar 等效的 T SQL 语句是什么 您可以使用SELECT INTO http msdn microsoft com en us libr
  • 如何在SSRS 2012中显示基于总金额的前10名

    我只需要显示前 10 名Class基于Total SUM Premium 柱子 我转到类代码属性组 gt 过滤器并按 SUM Net Written Premium 设置前 10 名 但它不起作用 我只需要显示前 10 名 而且总金额也应该
  • 跨多个表进行搜索,并在结果行中显示表名称

    如何构建 SQL 语句以跨多个平面不相关的表运行 并使用选择结果和结果来自的表的名称显示结果 这种情况是这样的 我有几个表 每个表都有相同的列名 这是我从外部各方收到的数据 并将其存储在不同的表中 相同的表看起来像 Table 1 pid
  • SQL中的NULL和编程语言中的NULL之间的区别

    我刚刚遇到一个关于如何在 T SQL 可能还有其他形式的 SQL 中处理 NULL 的有趣场景 这个问题得到了很好的描述和回答这个问题 https stackoverflow com questions 2866714 how does a
  • 插入后,数据库中仅插入“字符串”的一个字符

    Below is my table screenshot Data after insertion C 代码 SqlConnection con new SqlConnection connectionsession Con con Ope
  • SSIS 包卡在“已创建执行”状态

    我最近对我的一个 SSIS 项目部署了更新 自从该项目失败后 它就按计划运行了 SSIS 包似乎停留在 已创建执行 状态 报告中没有任何消息来解释这个问题 我尝试重新部署该项目 但结果保持不变 我最终不得不恢复到早期版本的部署以使系统重新上
  • 意外的查询结果

    为什么我从 sql server 得到以下结果 SELECT 12 C1 CONVERT int C2 CASE WHEN THEN equal ELSE not equal END C3 Sql Server Fiddle 演示 http
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 使用 TSQL 选择 XML 节点

    我的 SQL Server 2008 数据库表有一个 XML 字段 我想从该字段以及其他字段中选择节点 例如 考虑下表 DECLARE TestTable AS TABLE Id VARCHAR 20 Name XML INSERT INT
  • 具有不同排序规则的数据库可以在一台服务器上兼容吗?

    所以我现在有两个 SQL Server 都是 2012 年的 并且都运行单独的系统 其中一台服务器运行在 latin1 general bin 的排序规则上 另一台运行在latin1 general ci as 理想情况下 我想关闭其中一台
  • 使用 XSLT 进行数据透视

    我有一个像这样的 xml 文件
  • 针对表中的每一行运行 SQL Server 函数

    我有一个函数可以迭代表中的 每一行 当它运行时 它应该查看每一行 提取该行的相关 SET 值并运行该函数 该函数依次返回结果并使用正确的值更新正确的行 发生的情况是 它正在运行并返回最后一行的值 并用该值更新所有行 有什么想法我做错了吗 S
  • SQL proc计算7位和12位upc的校验位

    我不得不再次在互联网上搜索这段代码 所以我想我会把它放在这里 这样我下次就能更快地找到它 希望你也能更快地找到它 检查一下 下面的代码可以检查所有 GTIN 中的数字 EAN8 EAN13 EAN14 UPC A UPC E CREATE
  • Microsoft T-SQL 到 Oracle SQL 的转换

    我已经使用 T SQL 多年了 但我刚刚转到一个需要编写一些 Oracle 内容的组织 可能只是简单的 CRUD 操作 至少在我适应之前是这样 我不会将数据库从一个数据库迁移到另一个数据库 只是从应用程序开发的角度与现有 Oracle 数据
  • SQL LIKE 运算符在应该显示任何结果时没有显示任何结果

    我有一个包含大量信息的车辆表 但其中一列是 MSSQL 表中的 所有者 但我使用时无法选择其中一个所有者LIKE但如果我可以使用 Silkeborg Distributionscenter 是所有者 是的 表和参数中都有一个双空格 所以参数
  • 如何从动态查询中插入具有多列的表?

    如同上一个问题 https stackoverflow com questions 34194889 how to insert into table from dynamic query对于一对一映射 我需要一个针对源和目标中的多个列的解
  • SQL:从单个查询列出多对多

    我有 3 个表 分别代表 Users Roles 和多对多 UsersInRoles 键为 UserId RoleId 相关列 用户名 角色名 在管理 html 应用程序中 我想显示所有用户及其所在角色的列表 我尝试从 SQL 构建一个将返
  • 查找SQL记录中的并发用户数

    我有以下结构的表 UserID StartedOn EndedOn 1 2009 7 12T14 01 2009 7 12T15 01 2 2009 7 12T14 30 2009 7 12T14 45 3 2009 7 12T14 47

随机推荐

  • Xamarin Visual Studio 2017:无法添加跨平台视图页面

    所以我使用 Xamarin 跨平台应用程序模板 我想添加LoginPage xaml查看我的项目 所以我选择add gt new item gt contentpage 总是有错误 项目系统遇到错误 在项目的层次结构中找不到新元素 视图 L
  • 有条件地包括聚合管道阶段

    我有一个函数可以根据给定的参数给我一些订单 但是 参数可以为空 在这种情况下我想留下 match alone 这是我目前拥有的代码 if req query status typeof req query status array var
  • 如何重新创建类似 Pulse 的 UI?

    我想知道如何像应用程序一样通过表格显示图像Pulse http itunes apple com us app pulse news reader id371088673 mt 8在 iPhone 上 我用了UIScrollView但这并没
  • 在 Qt 中以编程方式设置 QLabel 的像素图

    我们应该用来显示图片的 Widget 是 QLabel 我们可以直接从 QtCreator 中通过设置其 pixmap 属性来完成此操作 我们应该首先创建一个资源文件 然后将图像添加到该资源文件中 要创建 Qt 资源文件 我们进入菜单 文件
  • Bootstrap 2的模态插件中心不显示

    我使用引导模式插件 但模式对话框未显示在中心 为什么 我的错 http dl dropbox com u 573972 stackoverflow bootstrap modal html http dl dropbox com u 573
  • 在 ElementTree 中使用 XPath

    我的 XML 文件如下所示
  • 在 Program.cs 中登录

    是否可以在 Program cs Main 方法中获取 ILogger 我想将其传递给在该方法内创建的服务 我只在SO上找到这个如何从 Startup cs 中写入日志 https stackoverflow com questions 4
  • 无法从 keycloak 建立到 Mailhog 的 SMTP 连接

    我有一个 docker compose 它包含 Keycloak 和 Mailhog 我在 Keycloak 中配置了 Mailhog 但它不起作用 我在 Powershell 中尝试了 MailHog 它有效 有人可以帮我弄清楚为什么它不
  • 如何通过 REST api 停止 Jenkins 中的构建?

    我在詹金斯有一份工作 我们自己的网站通过 REST API 触发此作业的构建 有时我们想中止构建 有时 可能是在构建开始之前 在这种情况下 我们有queueItem 而不是build 如何通过 REST API 执行此操作 如果构建已经开始
  • 在 Safari Mobile 10.3 上,粘性页脚可以滚动到屏幕之外

    我们的移动 Web 应用程序具有粘性底部导航 就像您在 iOS 应用程序中经常看到的那样 并且在 Safari 10 3 发布后仅横向可以将粘性导航 页脚 滚动到屏幕之外 尽管它是position fixed并设置bottom 0这在旧版
  • 获取 ZipInputStream 的大小

    在我们完全读取流之前 是否有办法找到 估计 ZipInputStream 的大小 例如 在读取用户数据之前 我们可以使用 getNextEntry 获取条目的元数据 Inputstream 有一个方法 available 来返回可以从此输入
  • 使用 bs4 查找特定链接文本

    我正在尝试抓取一个网站并找到提要的所有标题 我在获取文本时遇到问题a我需要的标签 这是 html 的示例 td class m a href QSYcfT target blank TF4 Oreos a a href font class
  • 使用 mysqli_error 调试 mysqli 查询或死亡

    我不知道出了什么问题 result db gt query INSERT INTO post items post id content date user id category id VALUES postid content date
  • 从特定路径加载强名称程序集?

    我有一个强命名的程序集 安装到特定文件夹 而不是 GAC Reflector 中显示的名称是 Foo Bar TreeFrog Version 1 2 1 0 Culture neutral PublicKeyToken ac88c4a8b
  • 这个宏包装展现了什么概念?

    一堆代码刚刚交给我 我对标头中的宏感到困惑 我无法理解它们的用途 define WRAPPER MACRO symbol symbol define ANOTHER SYMBOL WRAPPER MACRO ANOTHER SYMBOL d
  • 页面顶部的奇怪空白 – HTML、CSS 和 PHP

    好吧 这是我遇到的一个奇怪的问题 我有两个页面 略有不同 但共享几个相同的元素 基本上是两个图像 这些图像都由相同的 CSS 样式表控制 但是 它们在第二页上似乎都低了约 20 30 像素 第二个页面的不同之处在于它使用 PHPbefore
  • 由于应用程序需要更新,无法将手表应用程序构建到模拟器

    我已经被这个问题困扰了好几天了 如果有人能给我指明方向 我真的很感激 突然之间 我无法在模拟器上构建手表应用程序 但我仍然可以在设备上构建 它显示如下错误 它看起来像目标架构问题 但构建设置架构设置为 ARCHS STANDARD 显示错误
  • 在调用“disconnectedCallback”之前,是否可以多次调用自定义元素的“connectedCallback”?

    The spec https html spec whatwg org multipage custom elements html custom element conformance says 但是 请注意 connectedCallb
  • Jenkins Groovy Postbuild 使用静态文件而不是脚本

    是否可以将外部 groovy 脚本加载到 groovy 后期构建插件中 而不是将脚本内容粘贴到每个作业中 我们有大约 200 个职位 因此更新所有职位相当耗时 我知道我可以编写一个脚本来直接更新配置文件 如这篇文章中所示 将 Jenkins
  • SQL Pivoting 问题 - 寻找更好的方法

    这是一个与 T SQL 相关的问题 我正在使用 SQL Server 2012 我有一个这样的表 我想要这样的输出 解释 对于每个员工 都会有一行 一名员工有一项或多项任务 批次 ID 指定了这一点 根据批次 ID 列名称将会更改 例如国家