是否可以对我的sql SELECT语句的结果进行分组而不创建临时表以对一条语句进行求和和分组? 我有一张表格,保存贷方帐户号和借方帐户号的借方和贷方总额。

并为相反的字段输入零,我在下面的联合选择语句下进行了第一个分组,我需要根据重复的帐户名称对输出求和

我可以很容易地获得相同的结果,还是必须加载它的临时表? 我的选择声明如下

select  journal_drname  AS ACCNAME, sum(amount) AS DEBT,0 as CREDIT

FROM JOURNAL GROUP BY journal_drname

UNION select  journal_crname  AS ACCNAME, 0 as DEBT,sum(amount) AS

CREDIT,

FROM JOURNAL GROUP BY journal_crname

返回数据,例如:

ACCNAME      DEBIT     CREDIT

--------   -------     ------

CASH        0           1,000

CASH        900          0

CASH        300          0

BANK        200          0

BANK        400          0

我可以在上方总结以下几项:

ACCNAME      DEBIT     CREDIT

--------   -------     ------

CASH        200          0

BANK        600          0

我想将这些结果与上述相同。

我试图避免使用临时表,但是如果这是唯一可行的方法,那么我想了解更多有关以这种方式使用临时表的信息。

我也尝试进行某种形式的联接和联合,但不满足条件,而且我也不知道该怎么做。

除非journal_drname中包含不寻常的字符,否则您的结果没有意义。

改写:每个现金名称和现金的贷方和借项值分别为0怎么办? 您提出的SQL否定了这种可能性。

是的,我有两种情况下的帐户名有时会记入贷方,在这种情况下,我必须将帐户名加载到journal_crname中,如果借记了相同的帐户名,则必须将其加载到journal_crname字段中,因此我在外部帐户名中加载了两列 journal_drname和journal_crname

正如您所说的,查询工作正常,让我们将联合查询称为表格

( ...... ) myTable

然后只需创建一个子查询即可获得最后一步

SELECT ACCNAME,

CASE WHEN SUM(CREDIT - DEBT) < 0 THEN - SUM(CREDIT - DEBT)

ELSE 0

END DEBT,

CASE WHEN SUM(CREDIT - DEBT) > 0 THEN   SUM(CREDIT - DEBT)

ELSE 0

END CREDIT

FROM ( ...... ) myTable

GROUP BY ACCNAME

该语句看起来很完美,但仍然给我错误消息,不接受最后一行" GROUP BY ACCNAME",我将继续检查并恢复thxs

是的,现在工作量增加了三倍

您发现错误了吗?

是的,我错过了将内部表别名myTable放的原因,这就是为什么。

如果每个子查询只需要一行,则删除group by:

select  'CASH' as ACCNAME, sum(amount) AS DEBT, 0 as CREDIT

FROM JOURNAL

UNION ALL

select  'BANK' as ACCNAME, 0 as DEBT, sum(amount) AS  CREDIT

FROM JOURNAL;

(注意:ACCNAME值可能相反。)

要点:对于这种类型的查询,应该使用UNION ALL而不是UNION。 除非您打算删除重复项,否则没有理由承担删除重复项的开销。

另外,除非accname字段中有不寻常的字符,否则您的原始查询应该已经起作用。

我喜欢它...但是我对",除非您打算删除重复项"感到困惑,根据定义,不能有重复项。 基于SQL。 CASH和BANK否定联合中的重复项,并且在内部,由于每行只有一行,因此不能有重复项。 也许您需要在联合的每个部分中的journal_drname的where子句,对于银行的一个子句,对于现金的子句。

@xQbert。。。 即使没有重复项,UNION总是会产生删除重复项的开销(我说"总是";但是我想某个地方的某些数据库可能会识别出某些短路重复项消除的特殊情况)。

关于什么:

select ACCNAME,

CASE WHEN sum(DEBT)>sum(CREDIT) THEN sum(DEBT)-sum(CREDIT) ELSE 0 AS DEBT,

CASE WHEN sum(DEBT)

FROM (

select  journal_drname  AS ACCNAME,

sum(amount) AS DEBT,

0 as CREDIT

FROM JOURNAL GROUP BY journal_drname

UNION

select journal_crname  AS ACCNAME,

0 as DEBT,

sum(amount) AS CREDIT,

FROM JOURNAL GROUP BY journal_crname

) group by ACCNAME

我相信mySql子查询必须具有别名才能工作。

mysql嵌套选择代码_关于mysql:嵌套联合选择语句相关推荐

  1. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  2. mysql正则表达式数字开头_在MySQL中选择所有以5个数字字符(正则表达式)开头的电子邮件地址...

    要获取以5个数字字符开头的电子邮件地址,可选的解决方案是使用REGEXP-select *from yourTableName where yourColumnName regexp "^[ ...

  3. mysql在哪儿查看表的代码_查看mysql数据库及表编码格式

    转载来源:http://www.cnblogs.com/shootercheng/p/5836657.html ============================================ ...

  4. mysql 子查询概念_聊聊MySQL的子查询

    1. 背景 在之前介绍MySQL执行计划的博文中已经谈及了一些关于子查询相关的执行计划与优化.本文将重点介绍MySQL中与子查询相关的内容,设计子查询优化策略,包含半连接子查询的优化与非半连接子查询的 ...

  5. mysql数据库建仓范式_存mysql个数

    MySQL学习笔记之数据类型详解 注:以下内容针对MySQL5.0及以上版本 MySQL的数据类型非常多,选择正确的数据类型对于获得高性能至关重要,本文是我结合网上看到的一些blog加上<高性能 ...

  6. mysql 基于gtid复制_深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. 1.gtid基本概念 传统的基于binlog position复制的方式有个严重的缺点:如果slav ...

  7. mysql新手注意事项_学习mysql的注意事项!

    增删改查 先学增! 1:数字不用加双引号 2;字符串必须加双引号 3: 更新 所有行的单词:update 指点行:update 你想更新 谁的 就是 你想改哪一行! 需要记住的 有几个关键的问题!改 ...

  8. mysql 中有什么命令_常用mysql命令大全

    常用的MySQL命令大全 连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命 ...

  9. mysql高级查询面试_高级MySQL数据库面试问题 附答案

    因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...

最新文章

  1. gatsby_将您的GraphCMS数据导入Gatsby
  2. 过程中心方法论,事务中心方法论。
  3. Linux第六周学习总结——进程额管理和进程的创建
  4. Visual Studio Code里关于ESLint的错误消息
  5. 开发第一个spring boot应用
  6. remix卡在android root,小米平板刷入remixeOS后怎么root?
  7. 富士康筹划在越南建造2.7亿美元新工厂,扩大生产线!
  8. 使用ffmpeg来探测GB28181的ps流
  9. YiShaAdmin_项目的默认 XML 命名空间必须为 MSBuild XML 命名空间。如果项目是用 MSBuild 2003 格式---.Net_C#_若依.Net版Web框架使用及改造001
  10. 《构建高可用Linux服务器》答读者疑问
  11. C++ Gotchas: Avoiding Common Problems in Coding and Design
  12. maven私服搭建及应用
  13. Hyperledger Fabric 节点类型Commiter、Endorser、Leader、Anchor
  14. SVN遗漏so文件的解决办法
  15. 虚拟光驱xp版32位_Adobe2018大师版安装说明
  16. smartsvn基本操作
  17. 房屋户型图设计工具Room Arranger for Mac
  18. Poco::TCPServer框架解析
  19. uni-app(vue小程序)学习笔记
  20. B站视频下载:如何下载B站视频到电脑上

热门文章

  1. Android官方开发文档Training系列课程中文版:高效显示位图之在UI中展示位图
  2. C#中创建对象的方式
  3. 《程序员修炼之道:从小工到专家》阅读笔记03
  4. ubuntu 安装yar和使用
  5. mysql 其他引擎
  6. div下图片自适应解决方法
  7. 在CentOS6虚拟机上安装VirtualBox增强功能
  8. execel公式 java工具_PAP-快速开发框架:JAVA 计算器 自定义公式 解决EXCEL计算公式问题...
  9. 开启httponly之后登陆失败_二次元约会模拟《少女都市》正式版登陆Steam 橘势大好...
  10. 树莓派装系统,配置,换源,远程操控