Please could some help with with trying to find the answer to this problem.

I have 2 tables (MS SQL). One has a list of weeks - the other is tha data set. I want only the valid matches but I want them as columns.

These are the valid Weeks
BT Format
W10-2005
W11-2005
W12-2005
W13-2005

I am using the following code to try and get this to appear in columns
This Works
Select * from tbl_OnOrderDataHistory where [OnorderWeekNo] in
(Select * from ##temp_next52Weeks)

This is were I get stuck
SELECT [Store], [Season], [BTBCategory], [BTBSubCategory],[OnOrderWeekNo],
CASE OnOrderWeekNo When (SELECT [BT Format] from ##temp_next52Weeks where [BT FORMAT] = OnOrderWeekNo) THEN convert(float,[UnitsOnOrder]) else 0 end AS UnitsOnOrder_VAL_W01
from tbl_OnOrderDataHistory

I need the CASE to be dynamic as there are going to be 52 columns that need to be selected.

SO - If could select the first row, then the second row, this would work, but I cannot seem to select just 1 particular row from a SQL Table.

Sorry for the long explaination.
Just need to know how to select a particular row from a table in SQL.

thanks