Hello Guillaume, thanks your and Tom's solutions worked. I did find the page you cited though I admit when I was reading through all the bracets i was not sure if it was telling me a precedence, order or what. I am sure as i get better the following will read quite clearly.
[ WITH [ RECURSIVE ] with_query [, ...] ] SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ [ AS ] output_name ] [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ WINDOW window_name AS ( window_definition ) [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ] [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ] [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ] [ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] [...] ] thanks again. On Fri, Aug 26, 2011 at 9:46 AM, Guillaume Lelarge <guilla...@lelarge.info>wrote: > On Fri, 2011-08-26 at 09:28 -0400, Joy Smith wrote: > > column types are the same so I don't know why this 'union all' is > failing. > > Any ideas? > > > > You cannot have an ORDER BY before the UNION ALL. The manual says: > > [ WITH [ RECURSIVE ] with_query [, ...] ] > SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] > * | expression [ [ AS ] output_name ] [, ...] > [ FROM from_item [, ...] ] > [ WHERE condition ] > [ GROUP BY expression [, ...] ] > [ HAVING condition [, ...] ] > [ WINDOW window_name AS ( window_definition ) [, ...] ] > [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ] > [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS > { FIRST | LAST } ] [, ...] ] > [ LIMIT { count | ALL } ] > [ OFFSET start [ ROW | ROWS ] ] > [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ] > [ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] [...] > ] > > See the ORDER AFTER the (one or many) UNION? you didn't follow this, so > you have a syntax error. > > http://www.postgresql.org/docs/9.0/interactive/sql-select.html > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > here is the error: > > > > ERROR: syntax error at or near "UNION" > > LINE 17: UNION ALL > > ^ > > > > ********** Error ********** > > > > ERROR: syntax error at or near "UNION" > > SQL state: 42601 > > Character: 278 > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > Here is the query: > > > > with a as > > ( > > select channel,node,accesses from storage where monthly = '11-06' > > ), > > b as > > ( > > select channel,node,accesses from storage where monthly = '11-07' > > ) > > > > select > > b.node > > from a right join b on a.node=b.node > > where a.accesses is null and b.channel = ('611 IVR') > > order by node > > > > > > UNION ALL > > > > > > with a as > > ( > > select channel,node,accesses from storage where monthly = '11-06' > > ), > > b as > > ( > > select channel,node,accesses from storage where monthly = '11-07' > > ) > > > > > > select > > b.node > > from a right join b on a.node=b.node > > where a.accesses is null and b.channel = 'olam' > > order by node > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > here is the table structure: > > > > -- Table: "storage" > > > > -- DROP TABLE "storage"; > > > > CREATE TABLE "storage" > > ( > > node character varying, > > accesses double precision, > > monthly character varying, > > model character varying, > > channel character varying, > > qualified character varying, > > bigintmark bigserial NOT NULL, > > insertiondate timestamp with time zone NOT NULL DEFAULT now(), > > CONSTRAINT aso PRIMARY KEY (bigintmark) > > ) > > WITH ( > > OIDS=FALSE > > ); > > ALTER TABLE "storage" OWNER TO postgres; > > > -- > Guillaume > http://blog.guillaume.lelarge.info > http://www.dalibo.com > >