Обсуждение: ...
OK... doing some serious report hacking... and I decided I wanted to do this: select acct_id, sum(case when recd > ('now'::date - '30 days'::timespan)::date then amt else 0) as current from payable where not paid_p group by acct_id order by acct_id; but pgsql gives me: ERROR: parser: parse error at or near ")" Now... I also thought I might be able to contruct sum(amt * <boolean>), but this also isn't allowed. I think that we should make an int(boolean) function. Dave. -- ============================================================================ |David Gilbert, Velocet Communications. | Two things can only be | |Mail: dgilbert@velocet.net | equal if and only if they | |http://www.velocet.net/~dgilbert | are precisely opposite. | =========================================================GLO================
David Gilbert <dgilbert@velocet.ca> writes: > select acct_id, > sum(case when recd > ('now'::date - '30 days'::timespan)::date > then amt else 0) as current > from payable where not paid_p group by acct_id order by acct_id; > but pgsql gives me: > ERROR: parser: parse error at or near ")" The case construct has to be terminated with an "end" keyword; "... else 0 end)" ought to work. > Now... I also thought I might be able to contruct > sum(amt * <boolean>), but this also isn't allowed. I think that we > should make an int(boolean) function. That's been suggested before, and I agree. regards, tom lane