php - 一个查询中的多个数学值

标签 php mysql select

我的一个查询出现问题。

SELECT
        CASE WHEN b.value IS NULL 
        THEN sum(d.value)
        ELSE sum(d.value) + sum(b.value)
        END AS sumaWydatkow

        FROM data d
        LEFT JOIN data_bills b 
        ON  d.id = b.data_id
        WHERE   d.type = 0

        UNION

        SELECT

        CASE WHEN b.value IS NULL 
        THEN sum(d.value)
        ELSE sum(d.value) + sum(b.value)
        END AS sumaPrzychodow

        FROM data d
        LEFT JOIN data_bills b 
        ON  d.id = b.data_id
        WHERE   d.type = 1

我想对两列求和,或者如果其中一列 (data_bills) 为空,则仅对一张表求和,并具有两种版本的列类型:0 和 1。

但现在是一列有两条记录。我想要两列,每列一列。 我想问是否可以通过一个查询来完成?

谢谢

最佳答案

尝试这个查询:

SELECT
      ( SELECT
        CASE WHEN b.value IS NULL 
        THEN sum(d.value)
        ELSE sum(d.value) + sum(b.value)
        END AS sumaWydatkow

        FROM data d
        LEFT JOIN data_bills b 
        ON  d.id = b.data_id
        WHERE   d.type = 0
       ) type0,

      ( SELECT
        CASE WHEN b.value IS NULL 
        THEN sum(d.value)
        ELSE sum(d.value) + sum(b.value)
        END AS sumaPrzychodow

        FROM data d
        LEFT JOIN data_bills b 
        ON  d.id = b.data_id
        WHERE   d.type = 1
      ) type1

演示 --> http://www.sqlfiddle.com/#!2/6ec52/2

关于php - 一个查询中的多个数学值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480790/

相关文章:

PHP 使用样式将表单保存为图像或 PDF

mysql - VARCHAR mysql 中的时间长度

mysql select where大于小于多列

php - Zend Framework 1. 获取评论

mysql - 选择一些不同的列

php - 更新sql查询不会通过php中的mysqli_query()更新记录

php - 在调查系统中按顺序对问题进行排序

php - 如何制作正则表达式以使用 php 从以下代码中抓取复杂数组

MySQL 远程托管在虚拟服务器上 - 无法从 Mac 连接

JQuery ul li 选择列表