我想在特定日期之前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-03-02,我希望它查找2018-02-28和2018-03-04之间相同金额的任何数据,如上面的查询中所示。
我怎么能做到这一点?
不完全是。 <>
的意思是“不等于”。许多语言都使用!=
(许多数据库都支持这种语言)。
你想要的逻辑更像这样:
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()
。