Chce troche zoptymalizowac widok. Poniżej podaje część kodu.
CREATE OR REPLACE FORCE VIEW SA.VW_COTR_PL ( ID_U, ID_TT, WIN, WINVERSION ) AS SELECT DISTINCT ID_U, ID_TT, (SELECT DISTINCT VALUE FROM ihs.vw_x_PL_hardware WHERE description = 'Operating System' AND time_received = (SELECT MAX (time_received) FROM ihs.vw_x_PL_hardware WHERE VALUE = vw.VALUE AND ID_TT = vw.ID_TT) AND ID_TT = vw.ID_TT AND ID_U = vw.ID_U AND row_id = vw.row_id) AS WIN, (SELECT DISTINCT VALUE FROM ihs.vw_x_PL_hardware WHERE description = 'WIN Version' AND time_received = (SELECT MAX (time_received) FROM ihs.vw_x_PL_hardware WHERE VALUE = vw.VALUE AND ID_TT = vw.ID_TT) AND ID_TT = vw.ID_TT AND ID_U = vw.ID_U AND row_id = vw.row_id) AS WINversion FROM ihs.vw_x_PL_hardware vw WHERE time_received = (SELECT MAX (time_received) FROM ihs.vw_x_PL_hardware vw2 WHERE vw.ID_TT = vw2.ID_TT AND vw.ID_U = vw2.ID_U ) AND VALUE IS NOT NULL ORDER BY ID_U, ID_TT, WIN;
Mam takie pytanie, posiadam kolo 10 takich bloków w tym kodzie:
(SELECT DISTINCT VALUE FROM ihs.vw_x_PL_hardware WHERE description = 'WIN Version' AND time_received = (SELECT MAX (time_received) FROM ihs.vw_x_PL_hardware WHERE VALUE = vw.VALUE AND ID_TT = vw.ID_TT) AND ID_TT = vw.ID_TT AND ID_U = vw.ID_U AND row_id = vw.row_id) AS WINversion
różnią się tylko "description" i na końcu "AS something". Da się to jakoś skrócić, żeby nie trzeba było tak co chwile powtarzać tego selecta? Czym więcej takich selectów, tym wolniej mi się ten widok otwiera...