我希望在特定日期之前2天和之后2天找到具有相同金额的数据。以下查询是从2017-09-02获取数据。我知道<>
表示具体日期之前和之后。
SELECT id, datetime_payed, COUNT(data_sum) AS existing
FROM transactions
WHERE id_user = '1'
AND data_sum = '-149.00'
AND DATE(datetime_payed) <> '2018-03-02'
我希望它能查找2018-02-28和2018-03-04之间相同金额的任何数据,如果具体日期是2018-03-02,就像上面的查询一样。
我怎样才能做到这一点?。
答案 0 :(得分:0)
不完全是。 <>
表示&#34;不等于&#34;。许多语言都使用!=
(许多数据库都支持这种语言)。
你想要的逻辑更像是这样:
SELECT SUM(data_sum) AS existing
FROM transactions
WHERE id_user = 1 AND
data_sum = -149.00 AND
datetime_payed >= DATE('2018-03-02') - interval 2 day AND
datetime_payed <= DATE('2018-03-02') + interval 2 day ;
注意:
SELECT
删除了无关的列。如果您想了解更多信息,请使用聚合函数或GROUP BY
。id_user
和data_sum
是数字。SUM()
而不是COUNT()
。