2014-03-28 57 views
0

我有以下幾點看法不能創建從其他視圖的MySQL視圖

M_VWPROC_sub1,M_VWPROC_sub2,M_VWPROC_sub3,M_VWPROC_sub4,M_VWPROC_sub5, M_VWPROC_sub6,M_VWPROC_sub7,M_VWPROC_sub8,M_VWPROC_sub9

我試圖創建一個使用視圖以下sql.but我收到以下錯誤

# 1064 - 你在你的SQL語法錯誤;檢查對應於您MariaDB的服務器版本正確的語法使用 附近 'M_VWPROC_sub2 UNION ALL M_VWPROC_sub3聯盟所有M_VWPROC_sub4 UNION ALL M_VWPROC' 第2行

查詢手冊:

CREATE OR REPLACE VIEW M_VWPROC (UNIT, PS_DATE, LOCALIN, STOCKIN, STOCKOUT) AS 
select inner_sub_table.UNIT, 
     inner_sub_table.PS_DATE, 
     sum(inner_sub_table.LOCALIN)LOCALIN, 
     sum(inner_sub_table.pur) STOCKIN, 
     sum(inner_sub_table.sale) STOCKOUT 
    from M_VWPROC_sub1 
union all M_VWPROC_sub2 
union all M_VWPROC_sub3 
union all M_VWPROC_sub4 
union all M_VWPROC_sub5 
union all M_VWPROC_sub6 
union all M_VWPROC_sub7 
union all M_VWPROC_sub8 
union all M_VWPROC_sub9) 
     inner_sub_table 
group by inner_sub_table.UNIT, inner_sub_table.PS_DATE; 

任何幫幫我。提前致謝。

回答

0

union all的正確語法需要子查詢。 。 。這是一個select子句。但是,你不能做你想做的。你需要另一層子查詢。喜歡的東西:

create view v_YetAnotherView as 
select * from M_VWPROC_sub1 
union all select * from M_VWPROC_sub2 
union all select * from M_VWPROC_sub3 
union all select * from M_VWPROC_sub4 
union all select * from M_VWPROC_sub5 
union all select * from M_VWPROC_sub6 
union all select * from M_VWPROC_sub7 
union all select * from M_VWPROC_sub8 
union all select * from M_VWPROC_sub9; 

然後:

CREATE OR REPLACE VIEW M_VWPROC (UNIT, PS_DATE, LOCALIN, STOCKIN, STOCKOUT) AS 
select inner_sub_table.UNIT, 
     inner_sub_table.PS_DATE, 
     sum(yav.LOCALIN)LOCALIN, 
     sum(yav.pur) STOCKIN, 
     sum(yav.sale) STOCKOUT 
    from YetAnotherView yav 
    group by yav.UNIT, yav.PS_DATE; 

請注意,這個觀點荒謬的限制(該from子句不能包含子查詢)被限制到MySQL。

+0

請在'union all'語句中加'from'。 –

+0

@Ravinder。 。 。謝謝。非常適合剪切和粘貼。 –

+0

謝謝Gordon Linoff。 – tanzeem