当前位置: 首页 > 面试题库 >

SQL-一些行的总和,减去其他行的总和

连德义
2023-03-14
问题内容

我在mySQL中有一个带有以下各列的表:

CUSTOMER_CODE | TRANS_TYPE | TRANS_VALUE

TRANS_TYPE可以是“ DRINV”(销售)或“ DRCDT”(信用)。

我想获取每个客户的总销售额,因此到目前为止,我的查询是:

SELECT CUSTOMER_CODE, SUM(TRANS_VALUE) as SALES FROM DR_TRANS GROUP BY CUSTOMER_CODE

问题是这是销售 积分的总和,而不是销售减去积分。我希望结果是

SUM(TRANS_VALUE) where TRANS_TYPE = "DRINV" - SUM(TRANS_VALUE) where TRANS_TYPE = "DRCDT".

是否可以在SQL查询中执行此操作?


问题答案:
select customer_code,
       sum(case
             when trans_type = 'DRINV' then
              trans_value
             else
              -trans_value
           end) as net_sales
  from dr_trans
 group by customer_code


 类似资料:
  • 问题内容: 我有2列,像这样: 我想对金额求和,以获得结果 到目前为止,我已经尝试过(但失败了)的是: 问题答案: 删除中的单引号。它使列名转换为字符串。

  • 问题内容: 我已经迷上了一些SQL,其中有几行数据,我想从上一行中减去一行,并使其一直向下重复。 所以这是表格: 我希望结果显示第三列,称为差异,即从下面的一列减去第一行,最后一行从零减去。 我已经尝试过自我连接,但是我不确定如何限制结果,而不是让结果不断循环。我不能确定id值对于给定的结果集是连续的,所以我不使用该值。我可以扩展架构以包括某种顺序值。 这是我尝试过的: 谢谢您的协助。 问题答案:

  • 问题内容: 我有一个MySQL查询,该查询返回的是一行1和0。用于进度条指示器。我现在已经在代码中对其求和了,但是我尝试对查询中的值求和,并且意识到我不能使用SUM(),因为它们有很多列,但只有一行。 有没有一种方法可以自动在查询中求和?就像这样: 编辑:我忘了提,等等不是简单的字段值,而是每个值,而是一个表达式,例如,所以看起来我必须做一个嵌套查询: 正确? 问题答案: 如果可以有空值,则需要按

  • 问题内容: 我需要用一列更新表的每一行,作为同一表中其他两列的总和 像这样 UPDATE table1 SET table1.column1 =每行的总和(table1.column1 + table1.column2) 我试过了 因此,我可以通过首先选择所有rowId来迭代每个rowid来做到这一点 但是我需要在一个查询中处理该表中的所有行 当我尝试: 这将汇总column1和column2的所

  • 问题内容: SQL查询是否可以返回一些常规列和一些聚合列? 喜欢 : 问题答案: 您应该使用group by语句。 GROUP BY语句与聚合函数结合使用,以按一个或多个列对结果集进行分组。 例如: 您可以在此处看到完整的示例。

  • 问题内容: 我已经寻找了一段时间,但找不到该问题的答案(也许我没有搜索正确的术语或其他内容)。基本上,我有一个数据库,每个日期有任意数量的条目。我需要获取包含条目的最近X天的总和(忽略没有条目的天)。我知道如何找到每一天的总和。 假设我有一个名为“ Yield”的表格: 然后,我使用以下查询: 要获取每天的通过/测量的总数,请执行以下操作: 然后,我需要一个查询,该查询可以调用一个日期(例如我称它