Select->VieW

Евгений
Дата: 19.01.2001 15:23:18
Написал я хитрый Select. теперь хочу его загнать во View (но он(View) не поддерживает CASE)
Есть ли возможность его преобразовать(подразумевается переделать) к виду который бы подошел для View
Пару дней думаю ничего придумать не могу.
Я работаю с MS SQL7

Select ID_Tovar as "код",Name_Tovar as "Название",
CONVERT(float(10,2),Cost1) as "Ц0$",
CONVERT(float(10,2),Cost1_GRN) as "Ц0",
CONVERT(float(10,2),Cost2) as "Ц1$",
CONVERT(float(10,2),Cost2_GRN) as "Ц1",
CONVERT(float(10,2),Cost3) as "Ц2$",
CONVERT(float(10,2),Cost3_GRN) as "Ц2",
P.K_4 as P_S0,P.K_5 as P_Sk1,P.K_6 as P_Sk2,
P.K_7 as P_M6,P.K_8 as P_M7,P.K_9 as P_M3,
P.K_10 as P_M2,P.K_11 as P_M4,P.K_12 as P_S1,
(P.K_4+P.K_5+P.K_6+P.K_7+P.K_8+P.K_9+P.K_10+P.K_11+P.K_12) as TotalP
,LKOL,PKOL,LKOL_Nakl, PKOL_Nakl,Description From (
SELECT ID_Tovar,Name_Tovar,ID_Artikul,Tip_Size, Cost1,Cost1_GRN,Cost2,
Cost2_GRN,Cost3,Cost3_GRN ,Sum(CASE ID_Owner WHEN 4 THEN Kolvo ELSE 0 END) AS K_4,
Sum(CASE ID_Owner WHEN 5 THEN Kolvo ELSE 0 END) AS K_5,
Sum(CASE ID_Owner WHEN 6 THEN Kolvo ELSE 0 END) AS K_6,
Sum(CASE ID_Owner WHEN 7 THEN Kolvo ELSE 0 END) AS K_7,
Sum(CASE ID_Owner WHEN 8 THEN Kolvo ELSE 0 END) AS K_8,
Sum(CASE ID_Owner WHEN 9 THEN Kolvo ELSE 0 END) AS K_9,
Sum(CASE ID_Owner WHEN 10 THEN Kolvo ELSE 0 END) AS K_10,
Sum(CASE ID_Owner WHEN 11 THEN Kolvo ELSE 0 END) AS K_11,
Sum(CASE ID_Owner WHEN 12 THEN Kolvo ELSE 0 END) AS K_12 ,
LKOL,PKOL,LKOL_Nakl, PKOL_Nakl,Description FROM View_CurrentPlace
GROUP BY ID_Tovar,Name_Tovar,ID_Artikul,Tip_Size, Cost1,Cost1_GRN,Cost2,Cost2_GRN,Cost3,Cost3_GRN,LKOL,PKOL,LKOL_Nakl,PKOL_Nakl,Description) as P order by ID_Tovar

Если необходимы структуры используемых таблий могу тоже добавить.
Но интерисуют в основном пути решения.
SergSuper
Дата: 19.01.2001 15:55:13
Да, запрос на грани гениальности. Даже местами эту грань переходит.
Но во VIEW он не переходит наверное не из-за CASE.

Например, такой вид делается:
create view xxxxx as
select name, case when type='U' then 'таблица' else 'не таблица' end t
from ( select name, type
from sysobjects ) as s
Так что CASE поддерживаются

Напиши как он ругается
VadimB
Дата: 19.01.2001 18:57:36
Этот запрос содержит подзапрос.
Попробуй сделать два View - для самого запроса и для его подзапроса View