473,386 Members | 1,602 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Merging three tables

Hi

I have three tables with a common id with which they can be linked. I need
to merge them in a way that the resultant table has all records from three
tables. Below is what sort of result I am expecting;

Table 1
ID Value1
1 A1

Table 2
ID Value2
1 A2
2 B2

Table 1
ID Value3
2 B3
3 C3

Result expected;

ID Value1 Value2 Value3
1 A1 A2 <blank>
2 <blank B2 B3
3 <blank <blank C3

Columns are blank where no records match for that table.

How can I go about doing this?

Thanks

Regards

Dec 26 '06 #1
6 1951
It appears you are trying to display data in something like a cross-tab
format. Have you looked at cross-tab queries and reports?

Why is some data in table1, some in table2, etc.? Is there a reason the
data should be separated? Should not be separated?

Regards

Jeff Boyce
Microsoft Office/Access MVP

"John" <Jo**@nospam.infovis.co.ukwrote in message
news:eo**************@TK2MSFTNGP06.phx.gbl...
Hi

I have three tables with a common id with which they can be linked. I need
to merge them in a way that the resultant table has all records from three
tables. Below is what sort of result I am expecting;

Table 1
ID Value1
1 A1

Table 2
ID Value2
1 A2
2 B2

Table 1
ID Value3
2 B3
3 C3

Result expected;

ID Value1 Value2 Value3
1 A1 A2 <blank>
2 <blank B2 B3
3 <blank <blank C3

Columns are blank where no records match for that table.

How can I go about doing this?

Thanks

Regards

Dec 27 '06 #2
The data is for three separate years and for performance reasons we keep
them separate.

Regards

"Jeff Boyce" <no******@nonsense.comwrote in message
news:%2****************@TK2MSFTNGP04.phx.gbl...
It appears you are trying to display data in something like a cross-tab
format. Have you looked at cross-tab queries and reports?

Why is some data in table1, some in table2, etc.? Is there a reason the
data should be separated? Should not be separated?

Regards

Jeff Boyce
Microsoft Office/Access MVP

"John" <Jo**@nospam.infovis.co.ukwrote in message
news:eo**************@TK2MSFTNGP06.phx.gbl...
>Hi

I have three tables with a common id with which they can be linked. I
need to merge them in a way that the resultant table has all records from
three tables. Below is what sort of result I am expecting;

Table 1
ID Value1
1 A1

Table 2
ID Value2
1 A2
2 B2

Table 1
ID Value3
2 B3
3 C3

Result expected;

ID Value1 Value2 Value3
1 A1 A2 <blank>
2 <blank B2 B3
3 <blank <blank C3

Columns are blank where no records match for that table.

How can I go about doing this?

Thanks

Regards


Dec 27 '06 #3
On Wed, 27 Dec 2006 03:18:03 -0000, "John" <Jo**@nospam.infovis.co.uk>
wrote:
>The data is for three separate years and for performance reasons we keep
them separate.
DEMONSTRATED, actual performance reasons?

Or an assumption that "that many records can't be handled by Access"?

With an indexed year (or, better, Date/Time) field and proper query
design, Access should be able to do fine with hundreds of thousands or
low millions of records per year. And you wouldn't have the difficulty
of putting the three years back together - while a query on a large
(properly indexed) single table can be reasonable, a UNION query will
always be much slower (a UNION ALL query is better but still not as
good as the single table).

John W. Vinson[MVP]
Dec 27 '06 #4
Hi, John.
I have three tables with a common id with which they can be linked. I need to
merge them
.. . .
How can I go about doing this?
One way to do it is by building five queries. In this example, the three tables
are named TableC, TableD, and TableE.

Create the first query and name it qryUnionAllIDs:

SELECT ID
FROM TableC
UNION
SELECT ID
FROM TableD
UNION
SELECT ID
FROM TableE
ORDER BY ID;

Create the second query and name it qryAllTableC:

SELECT qryUnionAllIDs.ID, TableC.Value1
FROM qryUnionAllIDs LEFT JOIN TableC
ON qryUnionAllIDs.ID = TableC.ID;

Create the third query and name it qryAllTableD:

SELECT qryUnionAllIDs.ID, TableD.Value2
FROM qryUnionAllIDs LEFT JOIN TableD
ON qryUnionAllIDs.ID = TableD.ID;

Create the fourth query and name it qryAllTableE:

SELECT qryUnionAllIDs.ID, TableE.Value3
FROM qryUnionAllIDs LEFT JOIN TableE
ON qryUnionAllIDs.ID = TableE.ID;

Create the fifth query and run it to create tblValuesFromTablesCDE:

SELECT * INTO tblValuesFromTablesCDE
FROM (SELECT qryAllTableC.ID,
qryAllTableC.Value1, qryAllTableD.Value2,
qryAllTableE.Value3
FROM (qryAllTableC INNER JOIN qryAllTableD
ON qryAllTableC.ID = qryAllTableD.ID)
INNER JOIN qryAllTableE
ON qryAllTableD.ID = qryAllTableE.ID);

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/ex...ributors2.html for contact info.
"John" <Jo**@nospam.infovis.co.ukwrote in message
news:eo**************@TK2MSFTNGP06.phx.gbl...
Hi

I have three tables with a common id with which they can be linked. I need to
merge them in a way that the resultant table has all records from three
tables. Below is what sort of result I am expecting;

Table 1
ID Value1
1 A1

Table 2
ID Value2
1 A2
2 B2

Table 1
ID Value3
2 B3
3 C3

Result expected;

ID Value1 Value2 Value3
1 A1 A2 <blank>
2 <blank B2 B3
3 <blank <blank C3

Columns are blank where no records match for that table.

How can I go about doing this?

Thanks

Regards

Dec 27 '06 #5
On Tue, 26 Dec 2006 22:55:40 -0800, "'69 Camaro"
<Fo**************************@Spameater.orgZERO_SP AMwrote:

I fully agree with the advice already given: tables per year are a bad
idea, and not needed thanks to the power of indexing.
A good-willing amateur programmer at one of our clients took this
approach as well, and ended up having to adjust tables every year, and
the queries that were built upon it, and the forms and reports that
were built upon those. The system ended up so unwieldy that we had to
completely rewrite it. Now they have much fewer database objects, and
a button for "annual roll-over" that does some end-of-year
calculations and data maintenance.

Assuming you persists with the current design, perhaps it can be done
in two queries: a union all followed by a transform.
In the first, I would add a column indicating the source table:
(assuming all columns the same in the 3 tables)
select *, 2004 as TheYear from TableC
union all
select *, 2005 as TheYear from TableB
union all
select *, 2006 as TheYear from TableA

Then in the transform I would use the crosstab query wizard and put
TheYear as the row heading and the ID as the column heading.

-Tom.

>Hi, John.
>I have three tables with a common id with which they can be linked. I need to
merge them
. . .
>How can I go about doing this?

One way to do it is by building five queries. In this example, the three tables
are named TableC, TableD, and TableE.

Create the first query and name it qryUnionAllIDs:

SELECT ID
FROM TableC
UNION
SELECT ID
FROM TableD
UNION
SELECT ID
FROM TableE
ORDER BY ID;

Create the second query and name it qryAllTableC:

SELECT qryUnionAllIDs.ID, TableC.Value1
FROM qryUnionAllIDs LEFT JOIN TableC
ON qryUnionAllIDs.ID = TableC.ID;

Create the third query and name it qryAllTableD:

SELECT qryUnionAllIDs.ID, TableD.Value2
FROM qryUnionAllIDs LEFT JOIN TableD
ON qryUnionAllIDs.ID = TableD.ID;

Create the fourth query and name it qryAllTableE:

SELECT qryUnionAllIDs.ID, TableE.Value3
FROM qryUnionAllIDs LEFT JOIN TableE
ON qryUnionAllIDs.ID = TableE.ID;

Create the fifth query and run it to create tblValuesFromTablesCDE:

SELECT * INTO tblValuesFromTablesCDE
FROM (SELECT qryAllTableC.ID,
qryAllTableC.Value1, qryAllTableD.Value2,
qryAllTableE.Value3
FROM (qryAllTableC INNER JOIN qryAllTableD
ON qryAllTableC.ID = qryAllTableD.ID)
INNER JOIN qryAllTableE
ON qryAllTableD.ID = qryAllTableE.ID);

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/ex...ributors2.html for contact info.
"John" <Jo**@nospam.infovis.co.ukwrote in message
news:eo**************@TK2MSFTNGP06.phx.gbl...
>Hi

I have three tables with a common id with which they can be linked. I need to
merge them in a way that the resultant table has all records from three
tables. Below is what sort of result I am expecting;

Table 1
ID Value1
1 A1

Table 2
ID Value2
1 A2
2 B2

Table 1
ID Value3
2 B3
3 C3

Result expected;

ID Value1 Value2 Value3
1 A1 A2 <blank>
2 <blank B2 B3
3 <blank <blank C3

Columns are blank where no records match for that table.

How can I go about doing this?

Thanks

Regards
Dec 27 '06 #6

"John" wrote:
>
I have three tables with a common id with which they can be linked. I need
to merge them in a way that the resultant table has all records from three
tables. Below is what sort of result I am expecting;

Table 1
ID Value1
1 A1

Table 2
ID Value2
1 A2
2 B2

Table 1
ID Value3
2 B3
3 C3

Result expected;

ID Value1 Value2 Value3
1 A1 A2 <blank>
2 <blank B2 B3
3 <blank <blank C3

Columns are blank where no records match for that table.
In addition to all the sage advice you have already
received, here may be another way...

(untested)

qryUnion

SELECT
ID,
Value1 As theVal,
1 As theTable
FROM
Table1
UNION ALL
SELECT
ID,
Value2,
2
FROM
Table2
UNION ALL
SELECT
ID,
Value3,
3
FROM
Table3;

qryxtabFinal

TRANSFORM First(theVal)
SELECT
q.ID
FROM qryUnion AS q
GROUP BY
q.ID
PIVOT "Value" & [theTable]
In
("Value1",
"Value2",
"Value3");

Dec 27 '06 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: Jerry Hull | last post by:
I'm working with a database developed by an untrained person over several years - and on a network that has recently been upgraded with a new server installed and MS office upgraded from 2K (I...
1
by: svdh | last post by:
I have posed a question last saturday and have advanced alot in the meantime. But I am still not there Problem is that I try to merging various fields from various tables in one document in Word...
2
by: Dan Cooper | last post by:
I've got two datasets, each containing a single data table. dstDataSetA.Tables("TableA") dstDataSetB.Tables("TableB") I want to merge them together and delete any non-matching rows. ...
2
by: Bubb | last post by:
I have an Access database with one table that I use for stuff I sell online. Each record has the following fields: Unique Id, Cost, and Item Description. I just obtained some more stuff with its...
7
by: Jon Vaughan | last post by:
I have 2 datasets , one returned as a dataset from a webservice and one created client side form the same stored procedure that is returned from the webservice. I then try and merge the data, but...
2
by: sangita | last post by:
i don't know how to write module or query for the following problem in access i have two tables in one access database where id no &record no is same in two different tables, also fields a1, a2,...
1
by: John | last post by:
Hi I have two tables with two columns each. Each table has an id column and a value column. I would like the two tables to be merged so there are three columns id, valuefromtable1 and...
1
by: rossan | last post by:
Hi! I have a small database specifically for Project Registration with one of the tables called regContractors. The fields for this table are from three different tables of the main Contractors...
1
by: Big X | last post by:
I have already achieved this in access and was trying with straight SQL earlier I would just like to know what I'm doing wrong in sql or what syntax I'm missing. I have three tables with identical...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.