I am trying to create a table fom two different tables
Table 1 has
ID Place Value Date
--------------------------------
1 Place Value1 Date1
2 Place1 Value2 Date2
4 Place2 Value1 Date1
7 Place3 Value2 Date1
and Table2 has
ID Name Values
------------------------
3 ColName1 Value2
5 ColName2 Value1
6 ColName3 Value2
Now I want to create a new table with ID, Table1.Place, Table1.Date and Table2.Value
I tried using
INSERT INTO [dbo].[tblNewTable]
SELECT tbl1.ID, tbl1.Place, tbl1.Date
FROM [Tabble1] tbl1
UNION
SELECT tbl2.Value
FROM [Table2] tbl2
but it says that All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
Please Note that ID is unique in both the tables.
Not exactly sure what you're asking for. If you want to use a UNION
statement, the same number of columns have to be in each query (with the same data types). So in your case, if you're desired results are to get a list of ids 1 to 7, then you'd need something like this:
INSERT INTO [dbo].[tblNewTable]
SELECT tbl1.ID, tbl1.Place, tbl1.Date, tbl1.Value
FROM [Tabble1] tbl1
UNION
SELECT tbl2.ID, NULL, NULL, tbl2.Value
FROM [Table2] tbl2
This will result in:
ID Place Value Date
--------------------------------
1 Place Value1 Date1
2 Place1 Value2 Date2
3 NULL Value2 NULL
4 Place2 Value1 Date1
5 NULL Value1 NULL
6 NULL Value2 NULL
7 Place3 Value2 Date1
Alternatively, you are looking to JOIN
your tables to get a common result set:
INSERT INTO [dbo].[tblNewTable]
SELECT tbl1.ID, tbl1.Place, tbl1.Date, tbl2.Value
FROM [Tabble1] tbl1
JOIN [Table2] tbl2 ON tbl1.ID = tbl2.ID
In your supplied data, this will result in no records though.
Union should be on two tables both which have same number and type of columns. The query should be as follows. What you need is a join as follows:
INSERT INTO [dbo].[tblNewTable]
SELECT tbl1.ID, tbl1.Place, tbl1.Date, tbl2.Value
FROM [Tabble1] tbl1, [Table2] tbl2
WHERE tbl1.value = tbl2.value
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.