如何折叠 t-sql 中空值的行?

2023-11-29

我的查询处境很奇怪。我的目标是显示每个人多笔交易的存款和取款总额并显示它们。我收到多行,需要将其合并为一行。这一切都需要在一个查询中发生

SELECT
       lastname,
       firsname,
       case when upper(category) = 'W' then sum(abs(principal)) end as Withdrawal,
       case when upper(category) = 'D' then sum(abs(principal)) end as Deposit,
       description
FROM
       table1 
       JOIN table2 ON table1.id = table2.id 
       JOIN table3 ON table2.c = table3.c 
WHERE 
       description = 'string'
GROUP BY
       lastname,
       firstname,
       description,
       category

我的结果是

 lastname    firstname    Withdrawal    Deposit    description
 john         smith       null           140.34    string
 john         smith       346.00          null     string
 jane         doe         null           68.03     string
 jane         doe         504.00          null     string

我正在寻找

 lastname    firstname    Withdrawal    Deposit    description
 john         smith       346.00        140.34     string
 jane         doe         504.00        68.03      string

将主体添加到组中不起作用。任何解决此问题的帮助将不胜感激!


使用条件聚合。 。 。这case是论据sum():

select lastname, firsname,
       sum(case when upper(category) = 'W' then abs(principal) end) as Withdrawal,
       sum(case when upper(category) = 'D' then abs(principal) end) as Deposit, 
       description
from table1 join
     table2
     on table2.id = table1.id join
     table3 
     on table3.c = table2.c
where description = 'string'
group by lastname, firstname, description
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何折叠 t-sql 中空值的行? 的相关文章

  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 根据由另一列分组的不同列的最大值获取值[重复]

    这个问题在这里已经有答案了 我想根据由另一列分组的不同列的最大值来获取列的值 我有这张表 KEY NUM VAL A 1 AB B 1 CD B 2 EF C 2 GH C 3 HI D 1 JK D 3 LM 并想要这样的结果 KEY V
  • 以编程方式插入行(父行和子行)

    我正在使用 Spring 和 JDBCTemplate 该场景是 CUSTOMER 表和 ORDERS 表的父子关系 我想做一个插入 例如 1 个客户和 5 个订单 但我不确定如何以编程方式在 CUSTOMER 表中插入一行 如何获取 Or
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • 跨数据库的用户定义类型

    我有一个数据库 其中包含我在多个数据库中使用的常用函数 这些函数之一采用表作为参数 该参数是用户定义的类型 我想知道是否有办法从另一个数据库调用这个函数 我尝试在其他数据库中定义类型 如下所示 DECLARE bits as Common
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 3 个表的 SQL 查询(或联接)

    第一次在 Stack Overflow 上问问题 很棒的资源 但是只有一件事真正让我作为 SQL 新手感到困惑 我有三个表 我想获取与鲍勃的学生相关的所有导师的姓名 表 1 教师 ID Name 1 Bob 表 2 学生 STUDENT I
  • SQL Server 中高效的字符串后缀搜索?

    我想找到与谓词匹配的所有行MyColumn LIKE FooBar 但通过使用索引查找而不是扫描 一种方法本质上是创建 MyColumn 的反向版本并搜索反向模式 ooF 在该列上 在反向列上有一个常规索引 然而 我不喜欢手动创建这个反向列
  • H2 SQL 日期比较

    在 H2 数据库中 如何在 TIMESTAMP 类型的列上运行查询 SELECT FROM RECORDS WHERE TRAN DATE lt 2012 07 24 Try 2012 07 24
  • 更好地理解 SQL Server 中的架构

    就像标题一样 我还是一个SQLServer菜鸟 当我创建表 Mytable 时 数据库中显示 dbo Mytable 但有人能让我更好地理解模式吗 另外 在 Server 2008 TSQL 一书中 Itzik 说 在你的数据库中 表属于模
  • SQL 使用另一列的键和最大值设置列

    我需要根据同一 ID 的 duration 列的最大值更新 max register 列 将值设置为 1 其他值设置为 0 初始表 Id duration max register 1 0 0 1 7 0 1 3 0 2 10 0 2 5
  • 时间序列数据的自连接

    我需要一些帮助来完成我认为应该是相当简单的自连接查询 只需要将两条记录中匹配的开始时间和结束时间合并为一条记录 假设我的表中有以下内容 Time Event 08 00 Start 09 00 Stop 10 30 Start 10 45
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • SQL Server 错误“隐式转换,因为值的排序规则由于排序规则冲突而无法解析。”

    我在开发存储过程时遇到此错误 无法执行 varchar 值到 varchar 的隐式转换 因为由于排序规则冲突而无法解析该值的排序规则 声明是这样的 Select City COLLATE DATABASE DEFAULT AS Place
  • 通过 C# SqlCommand 执行合并语句不起作用

    我正在第一次尝试使用临时表和MERGE语句通过更新 SQL 表SqlCommandC 中的对象 我正在开发的程序旨在首先将大量记录 最多 20k 导出到 Excel 电子表格中 然后 用户可以搜索并替换特定值 并根据需要更新任意多记录中的任
  • Ruby ActiveRecord 和 sql 元组支持

    ActiveRecord 是否支持 where 子句中的元组 假设底层数据库支持 结果 where 子句看起来像这样 where name address in John 123 Main St I tried Person where n
  • 如何使用一个命令删除 SQL 数据库中的所有索引?

    那么 如何通过一条命令删除 SQL 数据库中的所有索引呢 我有这个命令可以获取所有 20 个左右的 drop 语句 但是如何从这个 结果集 运行所有这些 drop 语句呢 select from vw drop idnex 给我相同列表的另
  • 更改表添加列并在同一条件 IF 语句中更新新列

    我正在尝试添加列并在同一 if 语句中更新它 BEGIN TRAN IF NOT EXISTS SELECT 1 FROM sys columns WHERE Name N Code AND Object ID Object ID N Te

随机推荐

  • awk:一个文本文件中的词频,如何输出到myFile.txt?

    给定一个 txt 文件用空格分隔的单词 例如 But where is Esope the holly Bastard But where is And awk 函数 cat pathway to your file txt tr n so
  • 使用 PHP 替换文本文件中的字符串

    我需要打开一个文本文件并替换一个字符串 我需要这个 Old String span style display block New String span style display none 这是我到目前为止所拥有的 但除了额外的空格之外
  • 带有过滤器显示的 jQuery Mobile 列表视图,单击时显示项目

    我有一个使用 jqueryMobile 使用数据过滤器显示功能创建的列表视图 此功能会隐藏列表元素并在您键入时显示与输入的字符匹配的元素 我的数据源是本地的 意味着列表是静态填充的 我想做的是显示所有项目 而无需输入任何字符 但当列表本身获
  • 如何向我的 OSX 应用程序添加 Root 权限?

    我以 root 用户身份创建了一个应用程序 它运行良好 在 root 用户中 当我与标准用户尝试相同的应用程序时 它没有成功 然后我知道我需要 root 权限才能运行该应用程序 我谷歌了几天但没有得到它 我读过一些问题和苹果文档 哪个是 h
  • 压缩存储库中的所有父级?

    我删除了最后一个问题 因为我想我会问一个更简单的问题 有没有办法压缩节点的所有父节点 基本上 假装存储库从这里开始 So turn o o o o o x o o o o into x 如果我能修改x就更好了 但乞丐不能挑剔 以下是我将如何
  • div 内的浮动元素,浮动在 div 之外。为什么?

    假设你有一个div 给它一个确定的width并在其中放入元素 在我的例子中是img和另一个div 这个想法是容器的内容div会导致容器div伸展并成为内容的背景 但是当我这样做时 包含div缩小以适应非浮动物体 浮动物体要么完全向外 要么一
  • OSGi 解决什么问题?

    我在维基百科和其他网站上读到过OSGi 但我并没有真正看到大局 它说它是一个基于组件的平台 并且您可以在运行时重新加载模块 另外 到处给出的 实际示例 是 Eclipse Plugin Framework 我的问题是 OSGi 清晰简单的定
  • 将shared_ptr分配给weak_ptr

    我想将构造的shared ptr分配给weak ptr std weak ptr
  • 如何在“sub”表达式中使用lambda表达式参数?

    我希望能够构建类似以下委托的表达式 Func
  • 无法停止 Firebase JobDispatcher 服务

    可能重复 我创建了一个 JobDispatcher 服务来不断在后台获取用户位置并将用户位置发布到服务器 为此 我创建了一个作业 如下所示 private void startLocationJobService Check if loca
  • MVC .net core 未正确显示特殊字符

    我在 MVC net core 网站中有一个非常简单的视图 model MvcSearch Models SearchModel ViewData Title Index h2 Buscador de Informaci n h2 div
  • Struts 2.0 中登录时使用的拦截器

    我正在设计一个基本应用程序 其中用户提供他的用户 ID 和密码 如果登录成功 他将被重定向到主页 现在 如果用户 ID 和密码不为空 我想使用拦截器进行验证 但我无法找出如何访问拦截器中请求参数的值 JSP代码
  • NUnit 在汇编中找不到测试

    我用 MSTest 继承了一个程序集 但这些测试是在构建机器上使用 nunit console 运行的 不确定它是如何工作的 所以我决定对其进行整理并将其更改为适当的 NUnit 测试 但现在 nunit console 或 gui 找不到
  • 如何在firebase中管理用户的不同身份验证

    请帮助我在以下情况下找到正确的解决方案 我正在使用 swift 开发 ios 应用程序 它将使用 Firebase 作为后端 用户应该能够使用电子邮件 密码或 和 Facebook 登录 Firebase 也许稍后会添加谷歌 对我来说 为每
  • Python列表列表初始化

    我知道 10 将给出 10 个相同空的引用 并且 for i in range 10 将给出 10 个空列表 但在这个例子中 def get list thing return thing for i in range 10 a get l
  • 使用 Vuex 4 时,Vue.js 2 中出现警告

    当我尝试在 Vue 2 中使用 Vuex 4 作为商店时 控制台中出现警告 我该如何解决它 在 vue 中找不到导出 注入 反应 监视 以下是package jsonVue v2 x 和 Vuex v4 x 的条目 store js imp
  • 滑入和滑出图像

    我试图实现一种平滑的效果 当一个图像滑出时 另一个图像滑入 此动画需要采用一种方式 当一个图像滑出时 另一个图像滑入 以便它们都占用内部空间同时div 就像是this or this 我创建了一个简单的jsFiddle 描述他面临的问题 g
  • JemmyFx jar 位置

    我想测试我的 JavaFX 应用程序 我听说 JemmyFX 是执行此操作的正确工具 但是 我找不到要下载的 Jar 我尝试在网上搜索它 但我只能找到this页面显示该项目的最后一次提交是一年多前 我有两个问题 1 JemmyFX 是否已发
  • cudaMemcpyToSymbol 性能

    我有一些函数可以将变量加载到常量设备内存中并启动内核函数 我注意到 一个函数第一次将变量加载到常量内存中需要 0 6 秒 但下一次加载常量内存的速度非常快 0 0008 秒 无论哪个函数是 main 中的第一个函数 都会发生此行为 下面是示
  • 如何折叠 t-sql 中空值的行?

    我的查询处境很奇怪 我的目标是显示每个人多笔交易的存款和取款总额并显示它们 我收到多行 需要将其合并为一行 这一切都需要在一个查询中发生 SELECT lastname firsname case when upper category W