?
Solved

Need UPDATE query to add data to table

Posted on 2009-04-01
6
Medium Priority
?
507 Views
Last Modified: 2012-05-06
I have to combine 2 tables that should have originally been just one table. The first table contained a ClientID (manually entered number) and about 100 columns that were part of a survey. The second table contained the sameClientID and about 60 more columns that were part of the same survey. So now I have a table with one ClientID and all 160 columns but I only have the old data for the first 100 columns . I need to create an UPDATE query that will add the remaining 60 columns data to the table based on the matching ClientID field. I havent figured out how to make this happen with an SQL Server query...please help.
0
Comment
Question by:myndwire
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 4

Expert Comment

by:bleach77
ID: 24046667
UPDATE table160
SET column1=(SELECT column1 FROM table60 WHERE table60.ClientID = table160.ClientID)
WHERE table160.ClientID = table60.ClientID

Don't forget to backup your data before trying this. :)
0
 
LVL 4

Expert Comment

by:bleach77
ID: 24046733
That one is only for one column. You can add it in the SET query.
Between this is assumptions that all ClientID is unique in both table.
UPDATE table160
SET column1=(SELECT column1 FROM table60 WHERE table60.ClientID = table160.ClientID), column2=(SELECT column2 FROM table60 WHERE table60.ClientID = table160.ClientID)
WHERE table160.ClientID = table60.ClientID

Open in new window

0
 
LVL 28

Accepted Solution

by:
TextReport earned 2000 total points
ID: 24047102
IN SQL Server you can do this with the FROM clause to join your tables.
Cheers, Andrew

UPDATE tblA
SET ColA = tblB.ColA
   ,ColB = tblB.ColB
   ,ColC = tblB.ColC
FROM tblA INNER JOIN tblB ON tblA.ClientId = tblB.ClientID

Open in new window

0
NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

 
LVL 4

Expert Comment

by:bleach77
ID: 24047563
TextReport solution should be much better than mine.  :)
0
 
LVL 22

Expert Comment

by:dportas
ID: 24049237
In SQL Server 2008 use the MERGE statement instead of UPDATE with a JOIN:

MERGE INTO TableA
USING TableB ON TableA.ClientId = TableB.ClientID
WHEN MATCHED THEN UPDATE SET
 col1 = TableB.col1,
 col2 = TableB.col2,
 col3 = TableB.col3 ;
 
0
 
LVL 51

Expert Comment

by:Mark Wills
ID: 24058919
Curious, there are two solutions that will wor, so, why hasn't this been accepted or responded to ?

Just in case... Do you still have the old tables ? Or is the clientid in the same new table twice and you need to merge / fix within the same table ?

You can always refer to tableA as an alias of TableB in the above examples, just need to put in a bit more qualification to pick up those rows which have the missing rows...

e.g. 2008 merge syntax

MERGE INTO TableA
USING TableA as TableB ON TableA.ClientId = TableB.ClientID and TableA.col1 is NULL and TableB.col1 is not NULL      -- assuming col1 is one of those 'missing' columns
WHEN MATCHED THEN UPDATE SET
 col1 = TableB.col1,
 col2 = TableB.col2,
 col3 = TableB.col3 ;


or general SQL syntax :

UPDATE tblA
SET ColA = tblB.ColA
   ,ColB = tblB.ColB
   ,ColC = tblB.ColC
FROM tblA
INNER JOIN tblA as tblB ON tblA.ClientId = tblB.ClientID AND tbla.ColA is NULL and tblb.ColA is not NULL
0

Featured Post

Get real performance insights from real users

Key features:
- Total Pages Views and Load times
- Top Pages Viewed and Load Times
- Real Time Site Page Build Performance
- Users’ Browser and Platform Performance
- Geographic User Breakdown
- And more

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Long way back, we had to take help from third party tools in order to encrypt and decrypt data.  Gradually Microsoft understood the need for this feature and started to implement it by building functionality into SQL Server. Finally, with SQL 2008, …
SQL Server engine let you use a Windows account or a SQL Server account to connect to a SQL Server instance. This can be configured immediatly during the SQL Server installation or after in the Server Authentication section in the Server properties …
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question