首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为表中的每一行返回两行

为表中的每一行返回两行
EN

Stack Overflow用户
提问于 2019-06-06 15:02:25
回答 6查看 91关注 0票数 2

我有一个事务表,希望每行返回两行。transaction表中的每个事务都有一行。我想以以下日记帐分录格式返回交易日期和金额:

代码语言:javascript
运行
AI代码解释
复制
TransactionDate  TransactionRef      Transaction Amount
  01/01/2019       12345                   500.5

我还需要包括借方/贷方列,以使第一行过帐为正金额,借方/贷方显示'Db‘,然后返回的第二行将是负数,借方/贷方显示'Cr’

我需要查询Transaction表并返回以下值:

代码语言:javascript
运行
AI代码解释
复制
TransactionDate  TransactionRef      Transaction Amount      Db/Cr
  01/01/2019       12345                   500.5              Db
  01/01/2019       12345                   -500.5             Cr
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-06-06 15:10:21

使用UNION ALL:

代码语言:javascript
运行
AI代码解释
复制
select 
  *,
  case when TransactionAmount > 0 then 'Db' else 'Cr' end AS [Db/Cr] 
from tablename
union all
select 
  TransactionDate,  
  TransactionRef,
  -1.0 * TransactionAmount,
  case when TransactionAmount > 0 then 'Cr' else 'Db' end
from tablename
order by TransactionDate, TransactionRef, TransactionAmount desc
票数 1
EN

Stack Overflow用户

发布于 2019-06-06 15:06:56

另一种选择是交叉应用

代码语言:javascript
运行
AI代码解释
复制
 Select A.TransactionDate
       ,A.TransactionRef
       ,B.TransactionAmount
       ,DrCr  = case when sign(B.TransactionAmount)<0 then 'Cr' else 'Dr' end
 From   YourTable A
 Cross Apply ( values ( TransactionAmount)
                     ,( TransactionAmount*-1)
             ) B(TransactionAmount)
票数 3
EN

Stack Overflow用户

发布于 2019-06-06 17:26:39

代码语言:javascript
运行
AI代码解释
复制
Select 
  coalesce(t1.transactiondate,t2.transactiondate) as transdate, 
  coalesce(t1.transactionref,t2.transactionref) as transref,    
  coalesce(t1.transactionamount,-1*ABS(t2.transactionamount)) as transamount  
from tansaction t1 full outer join transaction t2 
on 1 = 0 
order by 
  TransactionRef, 
  transactiondate,    
  SIGN(t1.transactionamount)desc,
  ABS(t2.transactionamount)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56480300

复制
相关文章
TortoiseSVN 从 GitHub 更新时发生异常
使用 TortoiseSVN 从 GitHub 仓库 Update 时,弹出错误提示对话框:
mzlogin
2020/04/16
1.4K0
TortoiseSVN 从 GitHub 更新时发生异常
使用 TortoiseSVN 从 GitHub 仓库 Update 时,弹出错误提示对话框:
零式的天空
2022/03/28
1.2K0
从0实现React 系列(二):组件更新
假设React是你日常开发的框架,在日复一日的开发中,你萌生了学习React源码的念头,在网上一顿搜索后,你发现这些教程可以分为2类:
一只图雀
2020/06/28
1.5K0
从0实现React 系列(二):组件更新
React中传入组件的props改变时更新组件的几种实现方法
我们使用react的时候常常需要在一个组件传入的props更新时重新渲染该组件,常用的方法是在componentWillReceiveProps中将新的props更新到组件的state中(这种state被成为派生状态(Derived State)),从而实现重新渲染。React 16.3中还引入了一个新的钩子函数getDerivedStateFromProps来专门实现这一需求。但无论是用componentWillReceiveProps还是getDerivedStateFromProps都不是那么优雅,而且容易出错。所以今天来探讨一下这类实现会产生的问题和更好的实现方案。
MudOnTire
2019/05/26
5.3K0
react 学习(三) 组件更新
我们上一节了了解了函数式组件和类组件的处理方式,本质就是处理基于 babel 处理后的 type 类型,最后还是要处理虚拟 dom。本小节我们学习下组件的更新机制。
测不准
2022/04/08
1.1K0
react 学习(三) 组件更新
Flutter-常用组件(持续更新)Flutter-常用组件(持续更新)题纲:注:
相当于iOS开发中的给定尺寸的UIView。根据文档中的解释该控件会限制子控件的大小如果子控件允许的话。尤其是控件本身不好控制大小,则可以使用该控件来控制大小,列如:CircleAvatar。
用户8893176
2021/08/09
7440
更新时 Fiber 节点能否复用?
当产生更新时,workInProgressTree 的 Fiber 节点有两种方式生成:
玖柒的小窝
2021/12/07
5400
Oracle merge合并更新函数
本博客介绍一下Oracle merge合并函数,业务场景:新增数据的时候要先查询数据库是否已经有改数据,有数据就更新数据,没数据才新增数据,这是很常见的业务场景,如果是用Oracle数据库的话,其实直接用merge函数效率更快,而且merge函数性能也相对比较好
SmileNicky
2019/03/06
7620
plsql 触发器教程-当表1的某条数据更新时,表2的某些数据也自动更新
新建触发器,当更新test001中的D为某个值x时,test002中的D(不一定是D,也可以是C)也变成x
小小鱼儿小小林
2020/06/24
1.4K0
plsql 触发器教程-当表1的某条数据更新时,表2的某些数据也自动更新
PHP函数大全·持续更新
邮箱验证 function is_valid_email($email) { if (preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', $email)) { return true; } else { return false; } } OR function check_email($email) { $result = trim($email); if (filter_var($resu
骤雨重山
2022/01/17
9970
关于conda 更新时权限的问题
就被告知以下错误:PermissionError(13,'Permission denied)
戈贝尔光和热
2018/12/27
2.1K0
Vue是如何触发组件更新的?
Vue是数据驱动的一个视图框架,所谓数据驱动就是DOM是通过数据来映射的,只有在数据改变的情况下视图才会发生改变。
越陌度阡
2022/05/06
1K0
Vue是如何触发组件更新的?
项目中更新Stimulsoft组件的方法
Stimulsoft Ultimate是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。
全栈程序员站长
2022/09/06
2.3K0
项目中更新Stimulsoft组件的方法
js常用函数集锦(持续更新)
js常用函数规整 /* *获取某一段时间内所有日期 * @param starDay 开始时间 * @param endDay 结束时间 */ function getDayAll(starDay, endDay) { var arr = []; var dates = []; // 设置两个日期UTC时间 var db = new Date(starDay); var de = new Date(endDay); // 获取两个日期GTM时间 var s = db.
憧憬博客
2020/10/14
8500
MySQL 日期函数大全(更新中.....)
解析:以年-月-日这种格式输出。%r代码am还是pm。am表示凌晨和上午,pm表示下午和晚上。(0:00-12:00)。
贵哥的编程之路
2022/11/16
4.1K0
MySQL 日期函数大全(更新中.....)
Vue父组件向子组件传递一个动态的值,子组件如何保持实时更新实时更新?
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129742.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/30
4.5K0
python更新pip失败_findwindow函数
HWND h = FindWindow(NULL, TEXT(“SomeApp”));
全栈程序员站长
2022/09/21
7990
JAVA库函数总结【持续更新】
生成随机数: Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值. Random rand = newRandom(); rand.nextInt(int s);//生成0~s内的整数 int randNumber =rand.nextInt(MAX - MIN + 1) + MIN;//生成指定范围的整数 关于web服务获取服务器ip、hostname: 1. string ip = Request.ServerVariables["Remote_Add
瑾诺学长
2018/09/21
9120
MySQL 高级函数大全(更新完成)
解析:CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。 WHEN是if THEN是输出语句 ESLE代表当上面的全部都不行。就用ELSE
贵哥的编程之路
2022/11/16
9090
MySQL 高级函数大全(更新完成)
点击加载更多

相似问题

当web组件属性被更新时,如何更新道具?

12

当支持更新时更新组件

32

组件不更新道具更新

13

设置状态在反应组件从道具和更新时,道具改变?

25

当状态道具更改时,响应组件不更新

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档