Formatting fell apart, but you get the idea. Primary key is cono, prodid, whseid and the sql is as follows:
UPDATE product_warehouse
SET cono = a.cono,
prodid = a.prodid,
whseid = a.whseid,
addoncost = a.addoncost,
arptype = a.arptype,
averagecost = a.averagecost,
baseprice = a.baseprice,
binlocation1 = a.binlocation1,
binlocation2 = a.binlocation2,
prodclass = a.prodclass,
prodfamilygroup = a.prodfamilygroup,
stockunitytd = a.stockunitytd,
lastcost = a.lastcost,
lastinvdate = a.lastinvdate,
lastpowtdate = a.lastpowtdate,
lastrecptdate = a.lastrecptdate,
laststkoutdate = a.laststkoutdate,
aveleadtime = a.aveleadtime,
lastleadtime = a.lastleadtime,
lineptmax = a.lineptmax,
listprice = a.listprice,
nodaysseasonal = a.nodaysseasonal,
nodaysstkout = a.nodaysstkout,
notimesstkout = a.notimesstkout,
ordercalctyp = a.ordercalctyp,
orderpntmin = a.orderpntmin,
orderqtyin = a.orderqtyin,
orderqtyout = a.orderqtyout,
pricetype = a.pricetype,
prodline = a.prodline,
qtybckorder = a.qtybckorder,
qtycommint = a.qtycommint,
qtydemand = a.qtydemand,
qtyintransit = a.qtyintransit,
qtyonhand = a.qtyonhand,
qtyonorder = a.qtyonorder,
qtyrcvd = a.qtyrcvd,
qtyrcvdreqst = a.qtyrcvdreqst,
qtyshipreqst = a.qtyshipreqst,
qtyreservd = a.qtyreservd,
qtyunavail = a.qtyunavail,
ReciptYTD = a.reciptytd,
RebateCost = a.rebatecost,
RebateType = a.rebatetype,
RebateSubType = a.rebatesubtype,
replaccost = a.ReplacCost,
ReplacCostDate = a.replaccostdate,
ReturnsInYTD = a.ReturnsInYTD,
ReturnsOutYTD = a.returnsoutytd,
SftyAlowAmnt = a.sftyalowamnt,
SftyAlowPct = a.sftyalowpct,
SftyAlowType = a.sftyalowtype,
StatusType = a.statustype,
StndCost = a.stndcost,
StndCostDate = a.stndcostdate,
SXUser1 = a.sxuser1,
SXUser2 = a.sxuser2,
SXUser3 = a.sxuser3,
SXUser4 = a.sxuser4,
SXUser5 = a.sxuser5,
SXUser6 = a.sxuser6,
SXUser7 = a.sxuser7,
SXUser8 = a.sxuser8,
SXUser9 = a.sxuser9,
SXUser10 = a.sxuser10,
User1 = a.user1,
User2 = a.user2,
VendId = a.vendid,
UPCNo = a.upcno,
UsageRate = a.usagerate,
UnitBuyMsr = a.unitbuymsr,
VendProd = a.VendProd
FROM GTW_Product_Warehouse AS a LEFT JOIN product_warehouse AS b
ON a.cono = b.cono AND
a.prodid = b.prodid AND
a.whseid = b.whseid
INSERT INTO Product_Warehouse (Cono, AddonCost, AverageCost,
BasePrice, StockUnitYTD, LastCost, LastInvDate, LastPoWtDate,
LastRecptDate, LastStkOutDate, AveLeadTime, LastLeadTime,
LinePtMax, ListPrice, NoDaysSeasonal, NoDaysStkOut,
NoTimesStkOut, OrderPntMin, OrderQtyIn, OrderQtyOut,
QtyBckOrder, QtyCommint, QtyDemand, QtyInTransit, QtyOnHand,
QtyOnOrder, QtyRcvd, QtyRcvdReqst, QtyShipReqst, QtyReservd,
QtyUnavail, ReciptYTD, RebateCost, rebatetype, rebatesubtype, ReplacCost, ReplacCostDate,
ReturnsInYTD, ReturnsOutYTD, SftyAlowAmnt, SftyAlowPct,
StndCost, StndCostDate, UsageRate, ProdId, WhseId, ARPType,
ARPWhseId, BinLocation1, BinLocation2, ProdClass,
ProdFamilyGroup, OrderCalcTyp, PriceType, ProdLine,
SftyAlowType, StatusType, SXUser1, SXUser2, SXUser3,
SXUser4, SXUser5, SXUser6, SXUser7, SXUser8, SXUser9, SXUser10,
User1, User2, VendId, UPCNo, UnitBuyMsr, VendProd)
SELECT cono, addoncost, averagecost, baseprice, stockunitytd, lastcost, lastinvdate, lastpowtdate,
lastrecptdate, laststkoutdate, aveleadtime, lastleadtime,
nodaysseasonal, nodaysstkout, lineptmax, listprice,
notimesstkout, orderpntmin, orderqtyin, orderqtyout,
qtybckorder, qtycommint, qtydemand, qtyintransit, qtyonhand,
qtyonorder, qtyrcvd, qtyrcvdreqst, qtyshipreqst, qtyreservd,
qtyunavail, reciptytd, rebatecost, rebatetype, rebatesubtype, ReplacCost, replaccostdate,
ReturnsInYTD, returnsoutytd, sftyalowamnt, sftyalowpct,
stndcost, stndcostdate, usagerate, prodid, whseid, arptype,
arpwhseid, binlocation1, binlocation2, prodclass,
prodfamilygroup, ordercalctyp, pricetype, prodline,
sftyalowtype, statustype, sxuser1, sxuser2, sxuser3,
sxuser4, sxuser5, sxuser6, sxuser7, sxuser8, sxuser9, sxuser10,
user1, user2, endid, upcno, unitbuymsr, VendProd
From GTW_Product_Warehouse WHERE cono AND whse AND prodid NOT IN (SELECT cono, whse, prodid FROM Product_Warehouse)