Gustav Brock
gustav at cactus.dk
Sat Feb 1 05:31:00 CST 2003
Hi Dave
> Windows2000 Access 2000
> I'm trying to use "UNION" the first time.
> I have no problem as a select query, but
> I can't get it to work as an append query.
> All fiels in all tables are 50 chr strings. Appending
> either withour any UNION causes no problem.
> I can "work around" by using the UNION query
> as the source for an append query
> Any pointers on the following will be
> appreciated.
> Dave
> ==========================================
> This works
> SELECT Table1.Field1, Table1.Field2
> FROM Table1
> UNION SELECT Table1.Field1, Table1.Field2
> FROM Table2;
> ==========================================
> This doesn't, access points to an error in
> the second select statement
> INSERT INTO Table12 ( Field1, Field2 )
> SELECT Table1.Field1, Table1.Field2
> FROM Table1
> UNION SELECT Table2.Field1, Table2.Field2
> FROM Table2;
You have at least two options.
Either - as you mention - move the select/union part to a separate
query and use that as source in the append query (this would be the
preferred non-fancy method); or wrap the select/union part as an
in-line (sub)query using the strange "[ .. ]." syntax which I learned
from Paul (look in the archives for subject: SQL in-line subquery):
INSERT INTO Table12
(Field1, Field2)
SELECT
Field1, Field2
FROM
[SELECT
Field1, Field2
FROM
Table1
UNION ALL
SELECT
Field1, Field2
FROM
Table2;].
AS subQuery;
UNION ALL will select all records from the two tables.
Omit ALL if you wish distinct records only.
The name subQuery can be nearly anything except reserved words.
/gustav