根据两个查询的比较计算列

Compute a column based on the comparison of two queries

我正在尝试根据两个查询的比较来计算列。以这两个使用相同 table 的查询为例。唯一的区别是日期。

-Query for Monday
|Balance: 1,000

-Query for Tuesday
|Balance: 900

经过比较,我尝试创建的列应该是这样的(基于这两个查询):

-Column "payment" 
|Payment: 100

我该怎么办?

您可以加​​入两个查询:

SELECT     monday_payment - tuesday_payment AS balance
FROM       (SELECT payment AS monday_payment
            FROM   some_table
            WHERE  some_date = /* monday */) m -- Assume this returns one line
CROSS JOIN (SELECT payment AS tuesday_payment
            FROM   some_table
            WHERE  some_date = /* monday */) t -- Assume this returns one line

因为给众所周知的 SQL 猫剥皮的方法有很多种,这里有另一种选择:

select sum(case when date = monday then balance end) - sum(case when date = tuesday then balance end)
from table
where date in (monday, tuesday)