从 SQL Server 中的行创建列

2024-01-03

我有一个 SQL 查询,它提供以下格式的数据;

Total Hours   Year   
  100.00      2012 
  200.00      2012 
  300.00      2012 
   75.00      2011 
  150.00      2011 
   50.00      2010 
  125.00      2010 

我需要对总小时数进行求和,并将结果集设置为:

2012   2011  2010
 600    225   175

请在这里帮助我!如果您需要更多信息,请与我们联系。


您可以使用 PIVOT 执行此操作,可以是对年份进行硬编码的静态 PIVOT,也可以是在运行查询时创建年份列表的动态 PIVOT:

静态枢轴:

create table table1
(
  totalhours decimal(10, 2),
  year int
)

insert into table1 values(100, 2012)
insert into table1 values(200, 2012)
insert into table1 values(300, 2012)
insert into table1 values(75, 2011)
insert into table1 values(150, 2011)
insert into table1 values(50, 2010)
insert into table1 values(125, 2010)

select *
from
(
  select *
  from table1
) x
pivot
(
  sum(totalhours)
  for year in ([2012], [2011], [2010])
) p

这是一个带有示例的 SQL Fiddle http://sqlfiddle.com/#!3/b2fe2/1

动态枢轴:

DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX);

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.year) 
            FROM table1 c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT ' + @cols + ' from 
            (
                select totalhours, year
                from table1
           ) x
            pivot 
            (
                 sum(totalhours)
                for year in (' + @cols + ')
            ) p '


execute(@query)

两者都会给你相同的结果。

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

从 SQL Server 中的行创建列 的相关文章

  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • Sequelize.js 中的自定义或覆盖连接

    我需要使用创建自定义连接条件Sequelize js http sequelizejs com使用 MSSQL 具体来说 我需要加入TableB基于一个COALESCE中的列的值TableA and TableB并最终得到这样的连接条件 L
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • 同一索引操作上的不同估计行?

    简介和背景 我必须优化一个简单的查询 下面的示例 重写几次后 我认识到同一个索引操作的估计行数会根据查询的编写方式而有所不同 最初 该查询执行了聚集索引扫描 因为生产中的表包含二进制列 该表相当大 大约 100 GB 并且全表扫描执行起来需
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • 是否有适用于 SQL Server Express 的 SQL Server Profiler? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 SQL Server Express 的 SQL Server Profiler 也许是开源的 或者也许只是一个可以帮助我查
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 数字表与递归 CTE 生成一系列数字

    为什么使用数字表比使用递归 CTE 动态生成它们要快得多 在我的机器上 给定一张桌子numbers单列n 主键 包含从1到100000的数字 查询如下 select n from numbers 大约需要 400 毫秒才能完成 使用递归 C
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • SQL Server 连接尝试记录在哪里?

    SQL Server 是否有用于尝试连接的外部日志文件或内部表 或者此类信息是否放置在 Windows 事件日志中的某个位置 您可以启用连接日志记录 对于 SQL Server 2008 您可以启用登录审核 在 SQL Server Man
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

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

随机推荐

  • 使用 Mongoose 处理 MongoDB 中查找、修改、保存流程中的冲突

    我想更新一个涉及读取其他集合和复杂修改的文档 因此更新运算符findAndModify 不能达到我的目的 这是我所拥有的 Collection findById id function err doc read from other col
  • 如何将消息从 WH_KEYBOARD_LL 转换为 corespondig unicode char

    你好 我正在编写一个多语言应用程序 并且正在使用WH KEYBOARD LL钩 我不在乎为什么要使用钩子 我尝试了多种方法 但这是最简单 最快的方法 现在在钩子过程中 LRESULT CALLBACK LowLevelKeyboardPro
  • 在每个视图 IOS 的底部显示音乐播放器 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在创建一个 IOS 应用程序 我想在每个视图的底部显示音乐播放器实例 Like this image 采用一个基本视图控制器 它将以编程
  • 使用 Robolectric 进行 Android http 测试

    我有一个 Android 应用程序 其中应用程序的主要部分是 APIcalls java 类 我在其中发出 http 请求以从服务器获取数据并在应用程序中显示数据 我想为这个 Java 类创建单元测试 因为它是应用程序的大部分 从服务器获取
  • 为什么 PreventDefault 不起作用?

    这是我的代码的一部分 如果我尝试将图像放在块上 preventDefault 不起作用 jQuery document ready function event props push dataTransfer imgDropzone on
  • Python SciPy 卷积与 fftconvolve

    我知道一般来说FFT and multiplication通常比直接更快convolve当数组比较大的时候进行操作 然而 我正在将一个很长的信号 比如 1000 万个点 与一个很短的响应 比如 1000 个点 进行卷积 在这种情况下fftc
  • 如何使用 execvp()

    用户将读取一行 我将保留第一个单词作为 execvp 的命令 假设他会打字 猫文件 txt 命令将是 cat 但我不知道如何使用这个execvp 我读了一些教程 但还是没明白 include
  • 依赖注入容器有什么好处?

    我了解依赖注入本身的好处 我们以 Spring 为例 我还了解其他 Spring 功能的好处 例如 AOP 不同类型的帮助器等 我只是想知道 XML 配置有什么好处 例如
  • Java 安全性:通过 URLClassLoader 加载的沙箱插件

    问题摘要 如何修改下面的代码 以便不受信任的动态加载代码在安全沙箱中运行 而应用程序的其余部分保持不受限制 为什么 URLClassLoader 不像它所说的那样处理它 编辑 更新以回应 Ani B 编辑 2 添加了更新的 PluginSe
  • 无法从动态添加的复选框获取值

    单击按钮时我添加了一个复选框 最后需要通过单击提交按钮来获取所有选中的复选框值 这是我的代码 mIncrementButton setOnClickListener new View OnClickListener Override pub
  • 使用 gmaven 插件获取 org.codehaus.groovy.control.MultipleCompilationErrorsException

    这是我的示例程序 在使用 mvn 编译时它会抛出编译错误 我正在尝试使用 ExpandoMetaClass 添加静态方法 Singleton class ThrowError def parse println Anish ThrowErr
  • Android 中无法使用 WebView 加载网页

    我最近开始从事 Android 开发 并且希望使用 WebView 显示网页 我从 Google 网站上提供的示例中获取 由于某种原因 模拟器一直说页面不可用 我在 StackOverflow 中搜索并找到了与 WebViewClient
  • 在对象的生命周期中,“this”指针的值是否恒定?

    的值是this保证指针在特定对象的生命周期内保持不变 我无法想象它会改变的情况 但不知道我是否错过了一些东西 的值是this保证指针在特定对象的生命周期内保持不变 Yes As user Aconcagua https stackoverf
  • 精确测量线程中代码的执行时间(C#)

    我试图在多个线程上尽可能准确地测量某些代码的执行时间 同时考虑上下文切换和线程停机时间 该应用程序是用 C VS 2008 实现的 例子 public void ThreadFunc Some code here Critical bloc
  • 如何使用 Python 将 HTML 电子邮件另存为 Outlook 文件?

    有人在 Outlook 中创建了一个不错的电子邮件模板并将其发送给我以实现自动化 我打开了 HTML 格式的电子邮件 并使用该 HTML 重新创建了准确的电子邮件图像 格式等 我可以很好地发送这封电子邮件 但随后有人问我是否可以将所有电子邮
  • h:commandLink 的 oncomplete 属性未调用

    我们正在从 JSF 1 2 迁移到 JSF 2 2 6 以及 RichFaces 4 5 2 面临的问题oncomplete没有被叫到 期间的JS函数onclick被调用 但是 JS 在oncomplete没有被调用 这是如何引起的以及如何
  • 后端基于休息的服务

    我们建立了一个超过 3000 万用户的在线社区 该社区的后端有 RESTful 服务 前端也使用这些服务 我担心的是 与Java的二进制序列化协议 取决于语言 相比 使用REST作为内部数据传输协议是否可以 或者它会显着降低性能 可以使用哪
  • WordPress 网站显示内联 css 代码

    我正在一个网站上工作http kaniamea com turtle http kaniamea com turtle 如果您查看源代码 您将看到以下内容 这是内联代码 它随主题一起提供 有没有办法在子文件夹中的单独样式表中组织此代码 还有
  • 数据库连接自动重新连接

    我在 Tomcat 中有一个 DBCP 连接池 问题是 当连接短暂丢失时 应用程序就会中断 因为 DBCP 不会在稍后有连接时尝试再次重新连接 我可以让 DBCP 自动重新连接吗 有两种方法可以 解决 这个问题 尽管两者都存在一些问题 您可
  • 从 SQL Server 中的行创建列

    我有一个 SQL 查询 它提供以下格式的数据 Total Hours Year 100 00 2012 200 00 2012 300 00 2012 75 00 2011 150 00 2011 50 00 2010 125 00 201