In SQL Server I have a temporary table called - massupdate
and a main table called retaildata
The structure is as follows.
Table massupdate:
| retail_id | Qty|
| 1 | 1 |
| 2 | 2 |
Table retaildata:
| retail_id | Qty|
| 1 | 1 |
| 2 | 2 |
retaildata
has more columns also but these 2 are same as temptable massupdate
.
What basically should happen is that if retail_id
in massupdate
table is present in retaildata
then update the qty
in retaildata
table with qty
of massupdate
table. If retail_id
of massupdate
doesn't exist in retaildata
table, then make an insert query for retaildata
table. Basically, the business has given one Excel and I am feeding those data in massupdate
table and then comparing with main table retaildata
.
I have written a query like this but it's not correct:
IF EXISTS (SELECT retail_id FROM retaildata WHERE retail_id in (select retail_id from massupdate))
BEGIN
UPDATE S SET s.Qty= C.Qty FROM retaildata S inner join massupdate C on S.retail_id=C.retail_id
END
ELSE
BEGIN
INSERT INTO retaildata (retail_id,Qty,Trigger_Suppress,Next_Ship_Date,Next_Ship_Qty,Last_Ship_Date,Last_Ship_Qty,Carrier_Text,Ship_Number,Work_Pack_Code,Supplier_Part_Number,Supplier_Inv_Qty,Ship_Comments,Last_Updt_User,Last_Updt_Date)
SELECT retail_id,Qty,'N',null,null,null,null,null,null,null,null,null,null,'BATCH TRRIGER INSERT/UPDATE',Getdate() FROM massupdate END