SQL 年度总和报告,寻找优雅的解决方案

2023-11-29

我有一个包含 3 列的表:ItemCode、Quantity 和 DocDate。 我想以更“优雅”的方式创建以下报告:

SELECT T0.ItemCode, 
       (SELECT SUM(QUANTITY) FROM MyTable T1 WHERE YEAR(T0.DocDate) = 2011 AND T0.ItemCode = T1.ItemCode) AS '2011',
       (SELECT SUM(QUANTITY) FROM MyTable T1 WHERE YEAR(T0.DocDate) = 2012 AND T0.ItemCode = T1.ItemCode) AS '2012'
FROM MyTable T0
GROUP BY T0.ItemCode, YEAR(T0.DocDate)

我很确定有更好、更有效的方法来编写此代码,但我无法想出正确的语法。有任何想法吗?


你可以试试这个:

SELECT  T0.ItemCode, 
        SUM(CASE WHEN YEAR(T0.DocDate) = 2011 THEN QUANTITY ELSE 0 END) AS '2011',
        SUM(CASE WHEN YEAR(T0.DocDate) = 2012 THEN QUANTITY ELSE 0 END) AS '2012'
FROM    MyTable T0
GROUP BY 
        T0.ItemCode
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 年度总和报告,寻找优雅的解决方案 的相关文章

  • 查询获取每条记录的最小日期[重复]

    这个问题在这里已经有答案了 我想获取表中每条记录的最小日期 该表具有多个带有一个主键的日期条目 看看我的桌子 CaseNo Entry date ABC 001 2 12 13 ABC 002 2 09 13 ABC 001 1 01 13
  • 将逗号分隔的主数据替换为列中的描述

    有 2 个 SQL Server 表 Products Name Status Code Product 1 1001 1003 Product 2 1001 1005 1006 Status Code Description 1001 S
  • 单个查询删除并显示重复记录

    采访中提出的问题之一是 一张表有100条记录 其中 50 个 是重复的 是否可以用单个 查询删除重复记录 从表中以及选择和 显示剩余 50 条记录 这可以在单个 SQL 查询中实现吗 Thanks SNA 对于 SQL Server 你会使
  • MySQL Tinybit(1) 通过视图的列

    我有一个连接 2 个表的视图 其中一个表具有表示布尔值的tinyint 1 类型的列 该表在连接时并不总是有条目 因此当行丢失时视图需要采用 0 false 值 我希望视图公开 TINYINT 1 类型且 NOT NULL 类型的列 因为它
  • 处理大数据表时应该如何使用Hibernate Mapping

    问题定义 我有一个包含大量数据 超过 100 000 行 的数据库表 表结构如下 AppID DocID DocStatus 1 100 0 1 101 1 2 200 0 2 300 1 每个 applicationID 可能有数千个文档
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • 在 SQL Server 中获取帐户“锁定”状态

    我想解锁 SQL Server 中的一个帐户 在解锁之前 我必须检查该帐户是否被锁定 我只想在帐户被锁定时解锁 是否有任何 SQL 查询或存储过程来获取 SQL 用户的 锁定 状态 代表 Alex K 发布答案 SELECT LOGINPR
  • 如何在 CAST/CONVERT 之前检查 VARCHAR(n) 的 XML 格式是否正确

    我的公司有一个日志表 其中包含VARCHAR N 放置字符串的列 即supposed是 XML 但事实证明它并不总是格式良好的 为了对日志记录进行分析 以确定错误趋势等 我一直在使用LIKE陈述 然而 这非常慢 最近 我发现SQL Serv
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • value >= all(select v2 ...) 产生与 value = (select max(v2) ...) 不同的结果

    Here https stackoverflow com questions 17026651 query from union of joins 17027784 noredirect 1 comment24611997 17027784
  • 如何选择列值不不同的每一行

    我需要运行一个 select 语句 返回列值不不同的所有行 例如 EmailAddress 例如 如果表格如下所示 CustomerName EmailAddress Aaron email protected cdn cgi l emai
  • 了解 SQL Server 排序规则中的 Unicode 和代码页

    为什么所有 SQL Server 2008 R2 排序规则都与代码页相关联 所有排序规则都是 unicode 吗 当您的数据库被使用不同代码页的多种语言使用时 如何选择排序规则 谢谢 CHAR 与 NCHAR 即非 Unicode 与 Un
  • 更高效的 LINQ 查询

    有人可以帮我将此查询循环变成高效的 Linq 查询吗 我将其加载到 TreeView 中 因此必须附加每个项目 包含也非常低效 延迟加载项目也不起作用 事实上 这个查询访问数据库的次数比应有的要多 public IQueryable
  • SQLite 使用循环重新编号 ID

    您好 我有一个包含许多插入行的表 我需要按 id 对所有行重新编号并排序 我找到了这段代码 但它对我不起作用 SET i 100 UPDATE main Categories SET ID i i 1 WHERE Name White AL
  • 从一张表更新并插入另一张表

    我有两张桌子 table1 ID 代码 姓名 table2 ID 代码 姓名 具有相同的列 我想将数据从 table1 插入到 table2 或更新列 如果 table2 中存在 table1 ID table2 ID 执行此操作的简单方法
  • INNER/RIGHT/LEFT JOIN 怎么会比 FULL JOIN 慢 14 倍?

    我有一个查询 使用 FULL JOIN 需要 2 5 秒 使用 INNER RIGHT 或 LEFT JOIN 需要 40 秒 这是查询 子查询 完成两次 本身只需要 1 3 秒 SELECT T1 time T1 Total T1 rn
  • 在 SQL Management Studio 2012 中调试

    我正在使用 Management Studio 2012 但无法调试任何 SQL 代码 在我点击 调试 按钮后 左侧没有看到任何绿色箭头 并且我的 SQL 对象都没有加载到内存中 当我将光标移到我设置的断点上时 我收到此消息 The bre
  • Razor C# - 从数据库获取数据

    我正在使用 WebMatrix 我创建了一个数据库并放置了一个包含几行数据的表 我可以连接到它并获取数据WebGrid 但它只提供了一种使用表格输出数据的方法 这是我的 shows cshtml 代码 var db Database Ope
  • 如何安全地使用保留的 SQL 名称?

    我正在使用 Cakephp 3 使用 sqlserver 作为数据源服务器 我确信我的数据库连接没有问题 因为 home ctp 提示我已连接到我的数据库 并且我还使用迁移插件来创建我的表 似乎使用它没有问题这些工具 但是在我烘焙 MVC
  • Postgres 按查询分组

    我正在尝试在 postgres 的查询中使用 group by 我无法让它按照我想要的方式工作 以便根据需要对结果进行分组 这是另一个堆栈问题的扩展我刚刚回答过的递归查询 https stackoverflow com questions

随机推荐

  • 从 IronPython 初始化 C# List

    我在 C 中有一个相对较深的对象树 需要从 IronPython 进行初始化 我是 python 新手 我正在努力处理数组的初始化 举个例子 假设我在 C 中有这些类 public class Class1 public string Fo
  • 资源图片的绝对UriSource

    我有一个 WPF 项目 如果我将图像存储在 ProjectRoot Images image png 中 并将其编译为资源 那么我可以通过 xaml 此 xaml 位于根目录 将其作为 BitmapImage 访问BitmapImage U
  • django 导入错误 - 没有名为 core.management 的模块

    好吧 我看到很多这样的错误 我已经尝试了我所知道的一切 但尚未弄清楚这一点 我正在开发一个运行 python 2 5 和 Django 1 3 的开发服务器 解压 tar gz 下载后 使用 python setup py install
  • 更快的 JsonCpp 替代方案允许 Json 对象的复制/可变性?

    JsonCpp 很慢 而且代码相当混乱 有没有更快 更干净并且支持以下内容的替代方案 Json Value val copy val newMember 100 val newMember2 hello copy val val newMe
  • 将 COM 事件公开给 VBScript (ATL)

    我通过使用 ATL 简单对象 向导 用 C 和 ATL 构建了一个 COM 服务器 DLL 我关注的是微软的ATLDLLCOM服务器例子 除了一件事之外 一切都运行良好 我在 VBScript 中没有收到 COM 事件 我确实收到了 C 中
  • 单击时更改表格行的颜色

    我创建了一个表格 其中的行具有交替的颜色 例如黄色和红色 现在 我想将单击的行的颜色更改为一种常见颜色 例如蓝色 再次单击时恢复为原始颜色 我可以使用此代码更改颜色 mainTable find IDClicked css backgrou
  • C++如何包含(循环依赖)?

    我有Environment h 文件 include
  • 我的脚本无法在 IE(甚至 9)中运行?简单的 javascript 修改复制文本

    所以有一天我在浏览互联网时 复制了一段文字 我很酷的文字 并粘贴到Facebook上 却发现它变成了 我很酷的文字 阅读更多内容URL 我惊叹不已 太棒了 所以我深入研究并找到了一些教程等 我自己将其转换为具有数十个选项的可自定义插件 并输
  • ASP.net 在按下按钮时动态添加控件。回发问题

    我有一个包含多个按钮的用户控件 根据按下的按钮 不同的控件会添加到页面中 假设按钮 1 添加一个文本框 按钮 2 添加一个标签 我的代码大致如下 protected void but1 click object sender EventAr
  • 如果表包含大量未使用/未选择的列,是否会影响性能?

    背景 我有一个名为 cars 的表 其中包含大量二手车 大约 100 万行 该表有 170 多列 该表仅在各个列上建立索引 大多数列是布尔值 例如 has automatic gearbox 等 其余是字符串和数字 例如颜色和价格 这些汽车
  • vs 代码显示双重建议

    Sample 1 Sample 2 每当我编写时 VS Code 智能感知都会在 python 中显示双重建议 VS Code 中是否有设置 以便我可以将它们更改为正常状态 Press Ctrl Shift X查看是否安装了其他提示扩展并同
  • 如何更改字符串数组中的单个字符?

    有这个 include
  • 在 T-SQL 中替换没有游标的字符串中出现的字符串列表

    孩子 这真是一口 我想从字符串中解析标记 标记可以是单词或短语 我想要的是将任何标记的每次出现替换为字符串 我想在不使用光标的情况下执行此操作 Ex declare str varchar 256 I want this type to b
  • 从 Visual Studio 2017 使用 OData 服务

    我在使用 Dynamics Nav OData 时遇到问题 我正在使用 Visual Studio Community 2017 版本 15 9 0 并且我已经安装了扩展 OData Connected Service 官方 Microso
  • 可以对引用和非引用进行泛型吗?

    我正在尝试编写使引用成为非引用的代码Copy根据需要键入 同时直接使用该值 如果是 Copy 因为它是一个参考 考虑以下示例 struct Wrapper
  • 在 Python 3.6.2 上写入文件然后读取它

    target open test txt w target write ffff print target read 运行以下 python 脚本时 test txt 是一个空文件 它会打印一个空字符串 但是 当重新打开文件时 它可以很好地
  • 有什么方法可以知道数组列表是否包含一段文本?

    我有一个包含多个项目的数组列表 假设它们是 深棕色 蓝色 绿色 有什么方法可以查找我的某些商品中是否有字符串 DARK 我知道 contains 可以做到这一点 但只有当字符串完全正确时它才会这样做 我的想法是寻找以我的项目之一开头但没有所
  • 参考qt快速控制选项卡视图中的错误

    我用TabView编写了一个QT Quick程序 当我单击 Tabview 中的按钮 b1 时 程序应该调用 show text 并打印 b1 的文本 但它打印 ReferenceError b1 未定义 任何建议将不胜感激 谢谢 impo
  • 将 glut 链接到 Qt

    我想将 OpenGL 与 glut 结合到 Qt 中 我正在使用 Windows 我的 Qt 版本是 4 7 4 32 位 我按照教程进行操作 http www youtube com watch v 1nzHSkY4K18 我还查了一些人
  • SQL 年度总和报告,寻找优雅的解决方案

    我有一个包含 3 列的表 ItemCode Quantity 和 DocDate 我想以更 优雅 的方式创建以下报告 SELECT T0 ItemCode SELECT SUM QUANTITY FROM MyTable T1 WHERE