Update Statement in SQL

I have a table in SQL. It has details of Product,Price,Sales Area , Date and Value. I want to run an update statement so that the value column is populated with Price for that day. Even though if the regions are different and price is same for that product on that day we should only populate value column once. But if the product is sold in different areas with different price then we need to show those different price for that product for that day

Please find the attached exampleData
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mark WillsTopic AdvisorCommented:
update p set [value] = price
from yourtable p

using the alias will keep row alignment in check.
might like to add in a check for date or price variations.
or where clauses like 'Ball' and 'SA' to limit the "test"

take a copy before you start and test :

select * into tmp_yourtable_backup from yourtable   -- where tmp_yourtable_backup must not already exist - so make the "into" table name unique
Ryan ChongBusiness Systems Analyst , ex-Senior Application EngineerCommented:
try something like this instead:

;with b as 
	select a.*, 
	case when row_number() over (partition by a.Product, a.Date, a.price order by a.id) = 1 then a.Price else 0.0 end s
		from tableSales a
update a set a.value = b.s
from tableSales a inner join b
on a.id = b.id

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Query Syntax

From novice to tech pro — start learning today.