Thanks for the sample data. Next time (if you would please) try to provide it in a way similar to what I've done. This will, in more complex questions, save a ton of time. Plus some people won't even answer questions without it. 🙂
At any rate, here's a solution for you.
DECLARE @test-2 TABLE
(CompanyCode INT
,ItemCode VARCHAR(20)
,PlannerCode BIGINT)
INSERT @test-2
VALUES
(10, '15066-00266-01', 10053357)
,(96, '15066-00266-01', 10048778)
,(10, '19200-00027-06', 10052915)
,(96, '19200-00027-06', 0)
SELECT
t1.CompanyCode
,t1.ItemCode
,t1.PlannerCode
,COALESCE(NULLIF(t1.PlannerCode,0),t2.PlannerCode) AS derived_PlannerCode
FROM
@test-2 AS t1
LEFT JOIN @test-2 AS t2
ON t1.ItemCode = t2.ItemCode
AND t2.CompanyCode <> 96
WHERE
t1.CompanyCode = 96
______________________________________________________________________
Personal Motto: Why push the envelope when you can just open it?
If you follow the direction given HERE[/url] you'll likely increase the number and quality of responses you get to your question.
Jason L. Selburg