繁体   English   中英

Mysql在哪里查询…选择* where field1 + field2 + field3 <=字段4

[英]Mysql where query… select * where field1 +field2 + field3 <= field 4

基本上我想将存储在field1field2field3的数字加起来,并且只显示该总数小于field4 ...

例如: select * from table where field1 + field2 + field3 <= field 4

但这不起作用....任何帮助表示赞赏

这是我的实际SQL,您可以看到它更加复杂:

SELECT
  *,
  SUM ( amountpaid , amountpaid2 , amountpaid3 ) AS total AND
  DATE_FORMAT(date_start, ' %d.%m.%Y') AS date_formatted
FROM 
  calendar_event 
WHERE 
  Date_start BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 14 DAY) AND 
  total <= amount )

也许您的意思是:

SELECT
    *,
    amountpaid + amountpaid2 + amountpaid3 AS total,
    DATE_FORMAT(date_start, '%d.%m.%Y') AS date_formatted
FROM calendar_event
WHERE Date_start BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 14 DAY)
AND amountpaid + amountpaid2 + amountpaid3 <= amount

假设您分别在amountpaidamountpaid2amountpaid3 ,这将为您提供所有在接下来的14天内开始且未超额支付的事件(即未付或完全付清)。

您的查询

select * from table where field1 + field2 + field3 <= field4

应该工作得很好。 确保您要寻址的所有列实际上都存在并且它们是数字(整数,浮点数,双精度数等)。 还请确保,如果您实际上这样称呼,那么field4在“ field”和“ 4”之间没有空格-您的问题之间有一个空格,例如“ field 4”而不是“ field4”。

或者,让我们知道您收到什么错误消息。

Select
  *,
  Coalesce(amountpaid, 0) + Coalesce(amountpaid2, 0) + Coalesce(amountpaid3, 0) As total,
  DATE_FORMAT(date_start, ' %d.%m.%Y') As date_formatted
From
  calendar_event 
Where
  Date_start Between Now() And Date_Add(Now(), Interval 14 DAY) And
  Coalesce(amountpaid, 0) + Coalesce(amountpaid2, 0) + Coalesce(amountpaid3, 0) <= amount

http://sqlfiddle.com/#!2/35f6b/3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM