Connecting Tech Pros Worldwide Help | Site Map

Insert Into Select trouble

Brian
Guest
 
Posts: n/a
#1: Jul 21 '08
I've tried for hours... and my issue is this:

Table 1 has FirstName, LastName, Address, Birthday, (and other
columns)
Table 2 has FirstName, LastName, Address, Birthday, (and other
columns)

Most of Table1.Birthday is null. Some are not.
All of Table2.Birthday has valid Birthdays.

I want to insert Table2.Birthday into Table1.Birthday only where
Table1.Birthday is null.

Any help is appreciated.
Brian
Guest
 
Posts: n/a
#2: Jul 21 '08

re: Insert Into Select trouble


Oh... and here's the closest I have come..

insert into table1 (birthday)
SELECT birthday
FROM table2,table1
WHERE (table1.firstname=table2.firstname AND
table1.lastname=table2.lastname AND table1.address=table2.address)
AND table1.birthday is null

If you delete the first line, I get the data I am looking to update
Table1 with.
Brian
Guest
 
Posts: n/a
#3: Jul 21 '08

re: Insert Into Select trouble


Here is what worked

Update Table1
set Table1.Birthday=Table2.Birthday
From table1,table2
where (table1.firstname=table2.firstname AND
table1.lastname=table2.lastname AND table1.address=table2.address)
and table1.birthday is null
Roy Harvey (SQL Server MVP)
Guest
 
Posts: n/a
#4: Jul 21 '08

re: Insert Into Select trouble


On Sun, 20 Jul 2008 23:31:30 -0700 (PDT), Brian <eyeman@gmail.com>
wrote:
Quote:
>Here is what worked
>
>Update Table1
>set Table1.Birthday=Table2.Birthday
>From table1,table2
>where (table1.firstname=table2.firstname AND
>table1.lastname=table2.lastname AND table1.address=table2.address)
>and table1.birthday is null
That uses syntax proprietary to SQL Server. In standard SQL you could
use:

UPDATE Table1
SET Table1.Birthday =
(SELECT Table2.Birthday
FROM Table2
WHERE table1.firstname = table2.firstname
AND table1.lastname = table2.lastname
AND table1.address = table2.address)
WHERE table1.birthday is null

Roy Harvey
Beacon Falls, CT
Closed Thread