SQL 条件求和

2024-01-07

我目前有一个大型 SQL 语句,我将以下行添加到其中,以便获取每个交易 ID 的总现金(这是唯一的):

select sum(cash) from Table a where a.branch = p.branch 
and a.transID = p.transID) TotalCash

我现在需要做同样的事情,但只汇总上个月内有起息日期的现金价值,所以我有这样的东西:

select sum(CASE ValueDate WHEN > @startMonthDate THEN cash ELSE NULL END) 
from Table a where a.branch = p.branch and a.transID = p.transID) TotalMonthCash

抱歉,我没有完整的声明,但它确实很长并且特定于存储过程的上下文,但希望有人会知道我的意思?


试试这个:

SUM(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END)

解释

您的 CASE 表达式的语法不正确。您似乎将简单的 CASE 表达式语法与搜索的 CASE 表达式语法混淆了。请参阅案例文档 http://msdn.microsoft.com/en-us/library/ms181765.aspx:

CASE 表达式有两种格式:

  • 简单 CASE 表达式将一个表达式与一组简单表达式进行比较以确定结果。
  • 搜索到的 CASE 表达式对一组布尔表达式进行求值以确定结果。

您需要搜索的 CASE 表达式语法:

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END

附带说明一下,如果性能是一个问题,您可能会发现,如果您使用 JOIN 和 GROUP BY 重写而不是使用依赖子查询,则该表达式运行得更快。

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

SQL 条件求和 的相关文章

随机推荐

  • IONIC 键盘隐藏在输入焦点上

    我正在编写一个 Ionic 应用程序 该应用程序将用于医疗保健领域的物流目的 用于此应用程序的设备具有内置条形码扫描仪并在 android 4 1 1 上运行 该扫描仪在输入字段中输入数据 并通过按 输入 键提交数据 由于扫描仪在某些情况下
  • 将本地存储从 Cordova 应用迁移到 Android 应用

    我们在 Playstore 中有一个使用 Cordova 开发的应用程序 现在我们已经在原生 Android 中重建了整个应用程序 现在我们希望在不注销的情况下将用户从以前的应用程序升级到新应用程序 为此 如何将Cordova window
  • 根据累计和和组创建新组

    我希望根据两个条件创建一个新组 我希望在 Value 的累计总和达到 10 之前将所有案例分组在一起 并且我希望在每个人中完成此操作 我已经设法让它分别适用于每个条件 但不能同时使用 for 循环和 dplyr 但是 我需要同时应用这两个条
  • 如何使用 IntelliJ 将外部库的源代码和 javadoc 添加到 gradle?

    我已经使用 IntelliJ 和 Gradle 建立了一个 Java 项目 我的根项目中有一个 build gradle 文件 我可以编译并运行我的应用程序 然而 我正在使用一个Java 库 它附带了源代码和javadoc zip 文件 如
  • 如何删除 div 和页面顶部之间的空间?

    这可能已经被问过一百万零一次了 但如果有人能向我解释 div 的行为 我将不胜感激 我有一个容器 div 我将其对齐在页面的中心 页面的顶部和顶部之间有一个间隙 我希望它与页面顶部齐平 我假设有某种我需要删除的边距或填充 但我无法想象它可能
  • OSX Mac App Store:如何安装守护进程 shell 脚本

    我想为 Mac App Store 编写一个涉及安装守护程序的应用程序 守护进程可以是一个非常简单的 Hello World shell 脚本 可以是 Bourne shell 或 Python 它应该在每次机器启动时自动运行 我尝试使用安
  • 如何在谷歌应用程序引擎中的留言簿中的每个帖子下添加日期和时间

    这是代码 import cgi import datetime import wsgiref handlers from google appengine ext import db from google appengine api im
  • 单击按钮时一个片段到另一个片段

    我已经学会了如何在单击按钮时将片段活动从一个更改为另一个 所有都是片段活动 但现在我遇到了同一片段上多个按钮的问题 只有第一个按钮 id 有效 我有多个按钮 每个按钮都有不同的片段活动 需要帮忙 package com test fragm
  • 将特定标头添加到 bitbake wget fetcher

    我需要设置一个特定的标头以使用以下命令从资源中获取存档wgetfetcher 类似于 wget header PRIVATE ACCESS TOKEN blablablablabla https some resource 如何使用该获取器
  • 如何在 iOS Swift 中将数据数组回调到另一个 viewController

    在createCardVC中 我使用carbonKit库来显示标签栏 最初 使用静态数据加载的数据数组 但现在我尝试使用来自 webView javascript postMessage 的数据数组 当 createCardVC 加载时 第
  • C++11 递归可变参数模板

    我想了解递归可变参数模板是如何工作的 include
  • Java 中的“快速”整数幂

    简短回答 糟糕的基准测试方法 你可能认为我现在已经明白了 该问题被表述为 找到一种快速计算x y的方法 其中x和y是正整数 典型的 快速 算法如下所示 public long fastPower int x int y Replaced m
  • 并发修改异常[重复]

    这个问题在这里已经有答案了 我有一小段代码 它给了我并发修改异常 我无法理解为什么我不断收到它 即使我没有看到任何并发修改正在进行 import java util public class SomeClass public static
  • SQL Server 和 Firebase/PouchDB 同步

    我正在构建一个 Web 应用程序 客户端需要在离线状态下通过浏览器访问数据存储 我正在考虑使用 Firebase 或 PouchDB 数据库在应用程序内实现此目的 但是 对于后端 我使用 SQL Server 我可以将 Firebase P
  • HTML 或 CSS 中的“父级”是什么?

    我被介绍到以下代码 div Here is span a span element span which is blue as span elements are set to be div div class extra style co
  • 如何在打字稿中将 array.map 与元组一起使用?

    每当我使用array map对于元组 Typescript 将其推断为通用数组 例如 以下是简单 3x3 数独游戏的一些片段 const a Blank type Blank typeof type Cell number Blank ty
  • 当扩展复杂类型时混合继承吗?

    我的架构中有以下内容
  • 迭代日期范围(scala 方式)

    给定开始日期和结束日期 我想使用 foreach map 或类似函数按天迭代它 就像是 DateTime now to DateTime now 5 day by 1 day foreach println 我在用https github
  • 放置新的零会占用内存吗?

    我有以下代码 struct foo void bar foo d new d foo d 是否表达new d foo d 留下指向的对象d不变 更具体地说 如果类foo并且其中递归包含的所有对象都只有简单的复制构造函数 那么new d fo
  • SQL 条件求和

    我目前有一个大型 SQL 语句 我将以下行添加到其中 以便获取每个交易 ID 的总现金 这是唯一的 select sum cash from Table a where a branch p branch and a transID p t