Алексей Куренков,
Нет не так.
...
SELECT
PART_ID
,ORDER_IBT_ID
,[w1|T] = case when a.seq_week = (select seq_week from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Tot' then PLANNED else 0 end
,[w1|SS] = case when a.seq_week = (select seq_week from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'WKN' then PLANNED else 0 end
,[w1|Mon] = case when a.seq_week = (select seq_week from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Mon' then PLANNED else 0 end
,[w1|Tue] = case when a.seq_week = (select seq_week from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Tue' then PLANNED else 0 end
,[w1|Wed] = case when a.seq_week = (select seq_week from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Wed' then PLANNED else 0 end
,[w1|Thu] = case when a.seq_week = (select seq_week from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Thu' then PLANNED else 0 end
,[w1|Fri] = case when a.seq_week = (select seq_week from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Fri' then PLANNED else 0 end
,[w2|T] = case when a.seq_week = (select seq_week + 1 from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Tot' then PLANNED else 0 end
,[w2|SS] = case when a.seq_week = (select seq_week + 1 from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'WKN' then PLANNED else 0 end
,[w2|Mon] = case when a.seq_week = (select seq_week + 1 from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Mon' then PLANNED else 0 end
,[w2|Tue] = case when a.seq_week = (select seq_week + 1 from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Tue' then PLANNED else 0 end
,[w2|Wed] = case when a.seq_week = (select seq_week + 1 from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Wed' then PLANNED else 0 end
,[w2|Thu] = case when a.seq_week = (select seq_week + 1 from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Thu' then PLANNED else 0 end
,[w2|Fri] = case when a.seq_week = (select seq_week + 1 from MyPERIODS where date < getdate() and getdate() < (date + 1)) and a.DayOfWeek = 'Fri' then PLANNED else 0 end
,...
--вплоть до w52
from ( blah-blah) a
Работает с 35 неделями по 7 дней (245 колонок + 2 первые)
Если 36 - то падает с ошибкой про 256 таблиц.
Я не представляю как эти условия вписать с PIVOT.