在 T-SQL 中透视数据

2024-03-30

我有一群人。我们称它们为A、B、C。我有一张表格,显示他们每个月的工资......

PERSON|MONTH|PAID
A      JAN   10
A      FEB   20   
B      JAN   10   
B      FEB   20   
B      SEP   30   
C      JAN   10   
C      JUNE  20   
C      JULY  30   
C      SEP   40 

这张桌子可以而且确实可以持续很多年。

有没有一种方法可以在如下所示的表中旋转该表(据我所知,实际上不需要聚合,这通常是在数据透视中完成的)?

     JAN    FEB    MAR    APR    MAY    JUN    JUL    AGU    SEP
A    10     20
B    10     20     -      -      -      -      -      -      30
C    10     -      -      -      -      20     30     -      40

以前没有遇到过类似的问题,但假设这是一个常见问题,有什么想法吗?


如果您使用的是 SQL Server 2005(或更高版本),代码如下:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Month])
                        FROM YourTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Person, Month, Paid
       FROM YourTable ) base
       PIVOT (Sum(Paid) FOR [Person]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

无论您有多少种不同的状态,这都将起作用。它动态地组装一个查询PIVOT。使用动态列执行 PIVOT 的唯一方法是动态组装查询,这可以在 SQL Server 中完成。

其他例子:

  • 也许是 SQL Server PIVOT? https://stackoverflow.com/questions/7182106/sql-server-pivot-perhaps/7182489#7182489
  • 如何通过使用 SQL Server 连接到单个表来构建摘要? https://stackoverflow.com/questions/6849678/how-do-i-build-a-summary-by-joining-to-a-single-table-with-sql-server/6849795#6849795
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 T-SQL 中透视数据 的相关文章

  • 如何在数据库中对 (Java) 枚举进行建模(使用 SQL92)

    您好 我正在使用名为 性别 的列对实体进行建模 在应用程序代码中 性别应该是一个 Java 枚举类型 有 2 个值 男性和女性 知道作为数据类型的枚举不是通用 SQL 语言 92 的一部分 您将如何建模它 数据模型必须是可移植的 以便由多个
  • Powershell SQL Server数据库连接和连接超时问题

    我有一个连接到 SQL Server 2012 数据库的 powershell 脚本 该脚本运行 SQL 查询并将结果集放入数据表中 以将格式化的电子邮件发送给相关方 下面是问题所在的代码片段 CBA New Object System D
  • 当我耗尽 bigint 生成的密钥时会发生什么?怎么处理呢?

    我自己无法想象一个好的答案 所以我想在这里问 在我心里 我总是想知道 如果AUTO INCREMENT PRIMARY ID我的专栏MySQL表用完了吗 举例来说 我有一个有两列的表 一个ID auto increment primary
  • 如果不存在则插入数据(来自 2 个表),否则更新

    再会 我有3张桌子 tbl仓库产品 ProductID ProductName ProductCode Quantity tbl分公司产品 ProductID ProductCode ProductCode Quantity Locatio
  • 别名 .\SQLEXPRESS 为 (LocalDB)\MSSQLLocalDB

    I have SQLEXPRESS已安装 但代码假设我有一个名为 LocalDB MSSQLLocalDB 如何创建别名以便不必安装SQLLocalDb 启动 Sql Server 配置管理器 使用以下参数为 64 位 SQL Native
  • 如何:使用 SQL Server 2008 创建自动更新修改日期的触发器

    很高兴知道如何创建一个自动更新的触发器modifiedDate我的 SQL Server 表中的列 Table 时间输入 Id PK UserId FK Description Time GenDate ModDate 触发代码 TR Ti
  • 如何检查是否启用了更改跟踪

    我试图在运行之前确定我的数据库是否已启用更改跟踪ALTER DATABASE命令来启用它 我试图防止这些脚本多次运行时出现错误 我签到了sys databases and sys dm tran commit table但无法找到我要找的东
  • 如何更新 SQL Server 中 ntext 列中的 XML 字符串?

    有一个包含 2 列的 SQL 表 ID int 和值 ntext 值行中包含各种 xml 字符串 ID Value 1
  • 将数据从 MS SQL 导入 MySQL

    我想从 MS SQL Server 导入数据 通过某种正则表达式运行它以过滤掉内容 然后将其导入 MySQL 然后 对于每个查询 我希望显示来自第三个数据库的相关图像 明智地导入和链接 最简单的方法是什么 谢谢 澄清 它是一个 PHP 应用
  • 当没有文件可供下载时,如何避免 SSIS FTP 任务失败?

    我正在使用 SQL Server 2005 并在 SSIS 中创建 ftp 任务 有时会有文件需要通过 ftp 传输 有时则不会 如果没有文件 我不希望任务或包失败 我已将从 ftp 任务到下一个任务的箭头更改为 完成 以便包运行 我已将允
  • 查询从 Teradata 时间戳返回特定日期(6)

    我如何从 teradata timestamp 6 字段中搜索特定日期 例如 2013 10 22 sel from table A where date 2013 10 22 我尝试了上面的查询 该查询抛出错误 请帮忙 你可以这样尝试 s
  • 获取下一个ID而不插入行

    在 SQL SQL Server 中是否可以在插入行之前从表中的标识列检索下一个 ID 整数 而无需实际插入行 如果删除了最近的行 则这不一定是最高 ID 加 1 我问这个问题是因为我们偶尔需要用新行更新实时数据库 行的 ID 在我们的代码
  • SQL Server 到 er 模型

    是否有程序可以将 SQL Server 数据库图表转换为 er 模型 或者从 SQL Server 服务器创建数据库的 er 模型 在 SQL Server 中 Management Studio 中的每个数据库都有 数据库图 功能 您可以
  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • 如何对主索引重新编号

    我有一个简单的 MySQL 表 主索引 id 不是一一编号的 1 31 35 100 等 我希望它们的编号如 1 2 3 4 请告诉我该怎么做 我还想指出的是 我知道该操作可能产生的后果 但我只是想整理一下表格 我同意其他方法也可以 但我只
  • VB SQL 语句未选择正确的行

    我试图使用 SELECT 语句在我的数据库中 选择 一个人 但它没有选择正确的人 我也不确定为什么 我正在使用访问数据库 数据库连接代码 Imports System Data OleDb Module Database Connectio
  • MySQL:查询中周数的周日期范围

    我有一个看起来像这样的数据库表 id clock info 1 1262556754 some info 2 1262556230 some other info 3 1262556988 and another 4 1262555678
  • SQL:将一个表中的所有记录插入到另一表中,而不指定列

    我想将备份表 foo bk 中的所有记录插入到 foot 表中 而不指定特定的列 如果我尝试这个查询 INSERT INTO foo SELECT FROM foo bk 我会收到错误 插入错误 列名称或提供的值的数量与表定义不匹配 是否可
  • 如何使组合键唯一?

    I am making a database of students in one school Here is what I have so far 如果您不喜欢阅读 请跳至 简而言之 部分 问题是我对这个设计并不满意 我想要的组合gra
  • SQL 查询Where Column = '' 返回表情符号字符

    好的 我有一个包含三列的表 Id Key Value 我想删除所有行Value是空的 因此 我在删除之前编写了要选择的查询 Select from Imaging ImageTag where Value 到目前为止一切都很标准 现在这是奇

随机推荐

  • with() 语句从 opencv 中的 VideoCapture 读取?

    我喜欢使用 with 语句来访问文件和数据库连接 因为如果出现错误或文件关闭 它会自动为我断开连接 f open file txt r for i in f print i f close versus with open file txt
  • 在 bash 中读取以空格分隔的文件,不会导致空字段崩溃

    我正在尝试在 bash 中读取多行制表符分隔的文件 格式要求为空字段 不幸的是 外壳正在将彼此相邻的字段分隔符折叠在一起 如下所示 IFS t read one two three lt lt lt one t tthree printf
  • Fletchers16 校验和适合小数据吗?

    使用直接实施维基百科弗莱彻的校验和 https en wikipedia org wiki Fletcher s checksum对于 BCA 和 CAB 以及 BAC 和 ACB 等数据 我们得到相同的校验和 这是预期的吗 Fletche
  • 如何覆盖默认的 maven-install-plugin 行为?

    我需要自定义工件安装 并且无法弄清楚如何覆盖默认工件 来自默认的 Maven 生命周期 所以我的问题是 如何在我的 pom xml 中配置 Maven 安装插件 以便它不执行默认安装并仅执行我的自定义安装文件目标 我试过没有 id 和默认安
  • 为什么不同的 case 条件体不在不同的范围内?

    为什么不同的案件主体不会自动属于自己的范围 例如 如果我要这样做 switch condition case CONDITION ONE int account 27373 case CONDITION TWO account var no
  • 资源包 Spring

    如何在 Spring MVC 中的一个类中访问来自资源包的消息 该类扩展自AbstractController 我努力了getMessageSourceAccessor getMessage a message 但它会抛出这个异常 org
  • 如何从数据库值生成选择列表?

    我想知道在包含数据库中的值而不重复任何代码的表单上拥有选择列表的最佳方法是什么 我认为有意义的是将这些数据加载到控制器中并将其传递给视图模型 这样我就可以使用SelectListFor lt gt 或其他任何内容以生成列表 然而 这意味着我
  • 使用 ALS 训练时 Spark 给出 StackOverflowError

    当尝试在 Spark 的 MLLib 中使用 ALS 训练机器学习模型时 我不断收到 StackoverflowError 这是堆栈跟踪的一个小样本 Traceback most recent call last File Users us
  • 我们可以强制使用 Dart 垃圾收集器吗?

    我正在尝试模拟内存泄漏Streams 出于教育目的 但如果 GC 尚未运行 我无法确定内存是否真的泄漏 我可以在纯 Dart 测试中强制执行 GC 扫描吗 您可以通过 Dart DevTools Web GUI 来完成此操作 https d
  • 如何在android中创建液体布局

    我正在大学进行一个项目 我想知道如何在android中使用液体布局 以便不同的屏幕尺寸必须根据其分辨率看到应用程序 简而言之 我想创建一个应用程序 其布局在所有类型的屏幕上都是完美的 我知道如何在 PC 网站中用简单的 html css 创
  • Data.model.updateItem 不是函数 TypeError:Data.model.updateItem 不是函数

    使用 mongo 的 keystone js 中出现错误 Vehicle model updateItem 不是函数 TypeError Vehicle model updateItem 不是函数 目标是使用对象更新模型 就像我使用 ff
  • 让 TFS 将每个项目输出到其自己的目录的最佳方法是什么?

    我正在将大型代码库放入 Team Foundation Server 中 我希望构建过程能够创建我们项目的 准备部署 版本 我们执行此操作的正常方法是将每个项目的输出放在其自己的文件夹中 因此 例如 我们最终会得到类似的东西 C proje
  • R:创建具有节点属性的“statnet”网络

    我正在按照这里的示例使用 statnet 库http personal psu edu drh20 papers v24i09 pdf http personal psu edu drh20 papers v24i09 pdf 第一个示例展
  • 最小化 malloc() 调用量可以提高性能吗?

    考虑两个应用程序 一个 num 1 调用 malloc 多次 另一个 num 2 调用 malloc 几次 两个应用程序都分配same内存量 假设 100MB 对于哪个应用程序 下一个 malloc 调用会更快 1 还是 2 换句话说 ma
  • 如何为模板设置主题以进行编辑或添加特定内容类型的节点?

    我想为模板设置主题以进行编辑或添加特定内容类型的节点 例如 为了主题化所有内容类型表单 我使用该文件page node add edit tpl php 取决于我需要添加或编辑什么 但我没有找到自定义节点类型的模板名称 例如 产品 我只需要
  • 使用自定义选项时,Magento 1.7.0.1 将价格重置为 0

    我在用着Magento 1 7 0 1最近刚刚升级1 6 2 0 我有 SCP 扩展以及 MageWorx 高级自定义选项 我有一个可配置的产品 其中关联的简单产品具有自定义选项 如果您选择以下组合中的下拉菜单 您将看到带有可用自定义选项的
  • Laravel 将 .html 附加到路由(并且也可以在没有 .html 的情况下工作)

    添加 html 并使其双向工作的最简单方法是什么 example com about gt 有效 example com about html gt 有效 我可以将 html 添加到路线中 但如果没有 它就无法工作 Route get ab
  • 随时间反向传播

    有谁知道有一个可以有效实现时间反向传播的库吗 Java Python C VB NET F 中的任何一个 最好是最后一个 都可以 假设您已经在使用一些 BP 库 那么使用 BP 作为流程中的一个步骤来实现 BPTT 应该 TM 相当简单 B
  • 从数据库填充 JTree

    我有一个包含字段category id category name 和parent category id 的表 并且parent category id具有来自表示父子关系的category id的值 我没有任何固定的层次结构级别 它可能
  • 在 T-SQL 中透视数据

    我有一群人 我们称它们为A B C 我有一张表格 显示他们每个月的工资 PERSON MONTH PAID A JAN 10 A FEB 20 B JAN 10 B FEB 20 B SEP 30 C JAN 10 C JUNE 20 C