对一列求和,然后减去另一列的总和

2024-07-03

我有一个包含以下字段的表:

EmpID,
Code,
Amount,
TransDate,
CM,
CMDate

我想要访问数据网格的是SUM一切Amount具有相同的Code and SUM the CM具有相同的Code as the Amount然后减去SUM(Amount) to the SUM(CM)但如果结果是NULL(例如,没有CM求和并减去SUM(Amount))然后只需选择SUM(Amount)。我想出了这个声明:

SELECT
    TransDate, 
    Code, 
    SUM(Amount) - SUM(CM) AS 'Result'
FROM DeductionTbl
WHERE 
    (EmpID = @empID)
GROUP BY Code, TransDate
ORDER BY TransDate

如果有的话我会得到结果值SUM(CM)减去到SUM(Amount)但我得到了结果NULL如果没有则值SUM(CM)一样的Code。我不想要NULL数据网格上的值。如果有一个NULL值只是返回SUM(Amount)。有没有办法做到这一点?谢谢!


use ISNULLs:

SELECT
    TransDate, 
    Code, 
    isnull(SUM(isnull(Amount,0)),0) - isnull(SUM(isnull(CM,0)),0) AS 'Result'
FROM DeductionTbl
WHERE 
    (EmpID = @empID)
GROUP BY Code, TransDate
ORDER BY TransDate

NOTE:

The SUM(ISNULL(CM,0))可能会回来NULL当运行查询时 空结果集也避免了ANSI WARNINGS about aggregating NULL.

And ISNULL(SUM(CM),0)不被视为可为空。

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

对一列求和,然后减去另一列的总和 的相关文章

  • 如何将多个动态行插入数据库

    我有一个使用 php 和 jQuery 创建的多行动态表 这是查看表格的链接 https jsfiddle net soumyar c8w2Lrk8 一切工作正常 除了当我将数据插入数据库时 序列号不按顺序保存 我的插入查询如下 for i
  • flex datagrid - 使网格高度动态化并包含它的组件

    HI 我想构建一个具有动态高度值的数据网格 因为行数总是不同的 我还想将高度传达给容纳它的组件 以便它也随着数据网格的增长而增长 任何人都可以帮助我找到创建这样一个动态数据网格的最佳方法 Thanks DataGrid 的高度由其控制row
  • 使用工作日和日历日更新表格

    我在 SQL Server 2012 中有一个表 每月手动更新一次 以反映文件预计进入的日期 日期规则已经有值 但预期日期列是手动更新的 如果预计在 BD1 第 1 个工作日 我将更新到该月的第一个非周末 如果预计在 CD1 日历日 1 我
  • 如何从WPF中的DataGridCell中找到其所有者DataGrid和DataGridRow?

    在 DataGrid 命令的事件处理程序中 我在 ExecutedRoulatedEventArgs 中获取 DataGridCell 但是 我不知道如何获取其关联的 DataGrid 和 DataGridRow 非常感谢您的帮助 你可能w
  • 如何在 SQL Server 中使用 OPENQUERY 设置变量

    我正在尝试从表中读取数据 该表有一个表名列表 对于数据集的每一行 我想运行几个查询来提取数据并将其插入到临时表中 这是我所做的 DECLARE campName varchar 255 DECLARE sqlCommand varchar
  • 如何以编程方式更改 WPF 中的数据网格行颜色?

    我想知道这是否可能 我有这个数据网格包含 3 列和 2 行 我想要的是根据我输入的数据更改数据网格上 URL 列的背景 这是我的 xaml 代码示例
  • 使用 php 5.5 与 MS SQL 数据库通信的驱动程序

    与 MS SQL 数据库通信时 我无法找到支持 PHP 5 5 的驱动程序 我有发现Mssql最高支持5 3 http php net manual en mssql requirements php 此扩展在使用 PHP 5 3 或更高版
  • 选择重叠的时间范围

    T SQL 日期时间问题 我有一组时间范围 在这些时间范围内 可能存在一组重叠的时间范围 我称之为 阻塞 时间 封锁的时间不会超过一天 我想要做的就是分割时间以排除被阻止的时间 基本上给我没有 被阻止 的时间范围 可以安全地假设阻塞时间不能
  • SQL 查询、执行计划和“并行性”

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

    当我尝试安装 mySQL Server 2008 R2 时 它总是卡在SqlEngineDBStartConfigAction install configrc Cpu64 我在其他问题中发现我应该杀死msiexec进程 但我找不到它 我应
  • 将表复制到不同 SQL Server 上的不同数据库

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

    我们遇到了一个非常奇怪的问题 当打电话时GETUTCDATE 第二个语句中的返回值比第一个语句稍早 我们的场景如下 我们插入一个表来跟踪用户当前状态 该表有一个触发器 可以将用户过去状态的关联历史表插入到DATETIME字段和插入调用GET
  • 如何插入只有一个 IDENTITY 列的表?

    在尝试回答的过程中提出了这个问题另一个 https stackoverflow com questions 850017 how to manage groups in the database 850049 850049 考虑下面的 MS
  • 当跟踪值达到 bigint 限制时会发生什么变化?

    假设我已对数据库中的 200 个表启用了更改跟踪 由于变化跟踪数据库范围内的值变化 如果我达到 BIGINT 的最大值怎么办 为了达到bigint限制 在接下来的 292471 年里 您必须每秒更改数据库中的 100 万行 祝你好运
  • 使用 DBNull 或 null 插入/更新数据?

    当修改 SQL Server 数据库中的数据时 您可以使用System DBNull Value or null代表一个NULL价值 这两个都可以工作 并将设置适当的值NULL 我的问题是 其中哪一个是首选 为什么 在某些情况下是否应该使用
  • 使用 SUM() 而不使用 ISNULL() 是否安全

    我正在努力提高 SP 的性能 我对 SUM 和 ISNULL 有疑问 当我对一列求和时 我应该使用 ISNULL 吗 使用不带 ISNULL 的 SUM 安全吗 我的例子如下 SUM ISNULL COL1 0 由于 ISNULL 成本很高
  • SQL Server 更改数据捕获 - 捕获进行更改的用户

    关于SQL Server 更改数据捕获 https msdn microsoft com en us library bb933994 v sql 120 aspx 你能追踪到User谁对行 列数据进行了更改 或者是否有办法扩展 CDC 以
  • 如何在SQL中搜索日期?

    我有一个我想要的事件管理系统 如果某个活动注册了 5 天 2009 年 1 月 21 日至 2009 年 1 月 26 日 那么如果另一个人想要在 2009 年 1 月 22 日至 24 日期间注册活动 则不允许注册 我想使用 SQL 查询
  • SQL 和 Dapper 性能隐式转换

    我们如何防止 Dapper 中的 SQL 隐式转换 我们意识到 我们正在进行 SQL 隐式转换 导致索引扫描和死锁 Dapper 参数是 nvarchar 而 SQL 表列是 varchar 这导致我们所有的 sql 列都转换为 nvarc
  • GO 语句破坏了 .NET 中的 SQL 执行

    我有一个非常简单的 C 命令 shell 应用程序 它执行 SQL Server 生成的 SQL 脚本来编写模式和数据脚本 它在 GO 声明中爆炸了 错误信息 GO 附近的语法不正确 这是完整的 sql 脚本 Object Table gy

随机推荐