-1

基本的には に格納されている数値をfield1合計field2field3、この合計が以下のレコードのみを表示したい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 )

ロブ

4

3 に答える 3

3

多分あなたが意味するのは:

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

amountpaid、および で個別の支払いがあると仮定するamountpaid2amountpaid3、これにより、次の 14 日間に開始され、過払いではないすべてのイベントが得られます (つまり、過少または正確に支払われます)。

于 2012-11-17T01:39:18.960 に答える
0
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

于 2012-11-17T01:36:53.773 に答える
0

クエリ

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

完全に正常に動作するはずです。対処しているすべての列が実際に存在し、それらが数値 (integer、float、double など) であることを確認してください。また、実際にそれを呼び出した場合は、field4 の「field」と「4」の間にスペースがないことを確認してください。「field4」ではなく「field 4」のように、質問にスペースがあります。

または、表示されるエラー メッセージをお知らせください。

于 2012-11-17T01:16:03.197 に答える