Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于WHERE条件创建列

基于WHERE条件创建列
EN

Stack Overflow用户
提问于 2020-06-13 12:42:31
回答 1查看 44关注 0票数 0

我有以下问题:

代码语言:javascript
运行
AI代码解释
复制
SELECT 
    tn.Date, b1.Name DrBook, b2.Name CrBook, c1.Name DrControl, 
    c2.Name CrControl, l1.Name DrLedger, l2.Name CrLedger, 
    s1.Name DrSubLedger, s2.Name CrSubLedger, p1.Name DrParty, 
    p2.Name CrParty, m1.Name DrMember, m2.Name CrMember, tn.Amount, 
    tn.Narration 
FROM 
    Transactions tn
LEFT JOIN 
    Books b1 ON b1.Id = tn.DrBook
LEFT JOIN 
    Books b2 ON b2.Id = tn.CrBook
LEFT JOIN 
    ControlLedgers c1 ON c1.Id = tn.DrControl
LEFT JOIN 
    ControlLedgers c2 ON c2.Id = tn.CrControl
LEFT JOIN 
    Ledgers l1 ON l1.Id = tn.DrLedger
LEFT JOIN 
    Ledgers l2 ON l2.Id = tn.CrLedger
LEFT JOIN 
    SubLedgers s1 ON s1.Id = tn.DrSubLedger
LEFT JOIN 
    SubLedgers s2 ON s2.Id = tn.CrSubLedger
LEFT JOIN 
    Parties p1 ON p1.Id = tn.DrParty
LEFT JOIN 
    Parties p2 ON p2.Id = tn.CrParty
LEFT JOIN 
    Members m1 ON m1.Id = tn.DrMember
LEFT JOIN 
    Members m2 ON m2.Id = tn.CrMember
WHERE 
    tn.DrControl = 7 OR tn.CrControl = 7

tn.Amount列是Journal的数量。要在分类帐中显示它,我必须在我的应用程序中有一些额外的代码,以推送该金额在借方列,如果是tn.CrControl = 7,或贷方列,如果是tn.DrControl = 7

是否可以在我的SQL查询中创建DrAmountCrAmount

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-13 12:50:28

您可以使用case表达式来执行此操作:

代码语言:javascript
运行
AI代码解释
复制
select 
    ...,
    case when tn.CrControl = 7 then tn.Amount end as debit,
    case when tn.DrControl = 7 then tn.Amount end as credit
from ...
where 7 in (tn.DrControl, tn.CrControl)

注意,我还重写了where子句,使用in而不是or,这使得它稍微短了一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62359913

复制
相关文章
MySQL中where条件查询(where)
ha_lydms
2023/08/09
3230
MySQL where条件探索
mysql认为可能还用到了唯一索引,但实际并没有用到,还是只用到了联合索引, 再看key_len的长度和情况1一样,所以验证结论,where后只有第一个范围查 找才生效(如果第一个索引失效,则顺延)。如果有联合索引,仅最左侧的索引字段生效. 范围查询+等值匹配 优先有索引的等值查询
晓果冻
2022/09/08
1.8K0
MySQL where条件探索
MySQL复杂where条件分析
在《MySQL 常见语句加锁分析》一文中,我们详细讲解了 SQL 语句的加锁原理并具体分析了大部分的简单 SQL 语句,但是实际业务场景中 SQL 语句往往及其复杂,包含多个条件,此时就需要具体分析SQL 使用到的索引,并了解 where 条件的判断逻辑。
程序员历小冰
2020/08/31
2.4K0
MySQL复杂where条件分析
sql join中on条件后接and和where
场景1:left join + on a.xx = b.xx and a.xx2 = 'aa'
不吃西红柿
2022/07/29
1.9K0
sql join中on条件后接and和where
mybatis where 条件为list集合处理
在mybatis 编写sql时,常常会遇到条件为list的一个集合,我们在xml里如何进行遍历呢?
爱明依
2019/03/12
3.3K0
Mysql常用sql语句(8)- where 条件查询
https://www.cnblogs.com/poloyy/category/1683347.html
小菠萝测试笔记
2020/06/09
1.3K0
left join-on-and 与 left join-on-where 和 inner join on 加条件和where加条件的区别
在多表查询时,on 比 where 更早起作用。系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由 where 进行过滤,然后再计算,计算完后再由 having 进行过滤。由此可见,要想过滤条件起到正确的作用,首先要明白这个条件应该在什么时候起作用,然后再决定放在那里。
botkenni
2023/05/23
2.7K0
left join-on-and 与 left join-on-where 和 inner join on 加条件和where加条件的区别
浅析Impala中的where条件执行顺序
近日有用户反馈在使用Impala的过程中,SQL执行的很慢,我们抓取到相关的SQL,简化之后,如下所示(其中相关的敏感信息都已经做了替换):
skyyws
2022/05/20
1.8K0
浅析Impala中的where条件执行顺序
Ext根据条件显示隐藏列
  写在ExtonReady函数里面,并在表格成功渲染之后,可以添加判断是否隐藏或者显示某一列
河岸飞流
2019/08/09
2.7K0
MySQL存储过程where条件执行失败的问题
      前几天对服务器实体做了属性缓存机制,当时测试也没有出现大的问题,昨天有人跟我说,登陆的时候角色等级显示错误,我复测了一下,发现不只是等级错误,进入游戏后角色位置、金钱、经验等数据都错了。
帘卷西风
2018/08/03
2.3K0
mysql的where条件后加case_recommend
报表用的是【FineReport】,之前没用过,被临时授命解决问题,所以大概了解了一下。里面应该是集成了excel插件,报表样式如下:
全栈程序员站长
2022/10/03
1.8K0
mysql的where条件后加case_recommend
软件测试|SQL指定查询条件,WHERE的使用
使用 SQL 从单个表或者多表联合查询数据时,可以使用 WHERE 子句指定查询条件。当给定查询条件时,只有满足条件的数据才会被返回。建议您使用 WHERE 子句来过滤记录,以获取必要的结果集。
霍格沃兹测试开发Muller老师
2023/06/02
9940
MySQL数据库,SQL的where条件提取
在有了以上的t1表之后,接下来就可以在此表上进⾏SQL查询了,获取⾃⼰想要的数据。
用户1289394
2021/12/08
2.4K0
带你读 MySQL 源码:where 条件怎么过滤记录?
源码分析系列的第 3 篇文章,我们来聊聊 MySQL 是怎么判断一条记录是否匹配 where 条件的。
csch
2023/05/24
1.3K0
带你读 MySQL 源码:where 条件怎么过滤记录?
Vlookup多条件匹配(不用辅助列)
不用辅助列,用Vlookup函数做多条件匹配,具体如下: =VLOOKUP(条件1&条件2,if({1,0},条件1范围&条件2范围,结果范围),2,0) 注意: 1、同时按住CTRL+SHIFT+E
用户1756920
2018/06/21
8.6K0
MySQL中WHERE后跟着N多个OR条件会怎样。。。
用 tpcc-mysql 工具生成 50个仓库 的测试数据,表 order_line 共有 37970973 条记录。
老叶茶馆
2022/12/02
1.6K0
MySQL 简单查询语句执行过程分析(四)WHERE 条件
本文是 MySQL 简单查询语句执行过程分析 6 篇中的第 4 篇,第 1 ~ 3 篇请看这里: MySQL 简单查询语句执行过程分析(一)词法分析 & 语法分析 MySQL 简单查询语句执行过程分析(二)查询准备阶段 MySQL 简单查询语句执行过程分析(三)从 InnoDB 读数据
csch
2022/09/05
2.4K0
MySQL 简单查询语句执行过程分析(四)WHERE 条件
sql中的过滤条件放在on和where的区别
最近遇到相关业务,想揪一下sql的中的left join 或者right join 或者inner join 中的 on和where的区别,想了解这个首先我们要了解两个基础的知识。
公众号-利志分享
2022/04/25
3.8K0
点击加载更多

相似问题

如何基于where条件创建新列

11

HQL -基于列的条件WHERE子句

12

基于条件创建列

11

基于条件数组创建动态where

19

使用多列创建WHERE条件

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文