On Thu, Oct 28, 2010 at 20:02, Scott Newton <scott.newton@vadacom.co.nz> wrote:
> On Fri, 29 Oct 2010 14:40:51 Tom Lane wrote:
>> Anyway, you've got two different typing violations there, so you need
>> two casts to fix it:
> Unfortunately not:
> from cc_call cdr left join cc_card cc on cdr.card_id=cc.id left join
> (select 'dnid' as dnid, 0.1 as sell_cost,0.1 as cost,0
> as dnid_type union select 8887798764,0.02,0.06 ,1
> ) as tf on
> tf.dnid::text=substr(cdr.dnid,1,length(tf.dnid::text))
>
> still gives
>
> 2010-10-29 14:58:09 NZDT ERROR: invalid input syntax for integer: "dnid"
You can fix that by casting 8887798764 as text (or by making "dnid" an
int). The columns for a union need to be of the same type.