2015-04-17 62 views
1

只需要從兩個不同的視圖運行這個簡單的數學問題。當它運行它給我錯誤的數字作爲答案。從這樣的兩個視圖運行數學問題是不可能的?MYSQL從視圖中乘法

SELECT FORMAT((alchX.sumofvalue) * (medY.sumofvalue),2) AS 'PowerSum(x+y)' 
    FROM alchX 
    JOIN medY 
    ON medY.area_code = alchX.area_code 
    GROUP BY alchX.series_id 

這裏是SQL FIDDLE http://sqlfiddle.com/#!9/dd463/2 它運行完全正常的小提琴,但在phpMyAdmin的我得到

PowerSum(x+y) 
    10 
    20 
    15 
+0

您沒有指定您擁有的數據 - 您正在乘數的數字,也沒有提供您得到的結果,也沒有提供您期望的結果。用簡單的話來說,數字在哪裏,你如何知道你錯誤地認爲你錯誤的結果?電腦不撒謊。 –

+0

我很確定這是因爲MYSQL將sumofvalue設置爲VARCHAR作爲默認值。由於它在視圖中。我如何強制MYSQL將此列轉換爲DECIMAL數據類型? –

+0

如果你非常確定,那一定是它。 –

回答

0

GROUP BY列,但不使用聚合功能。因此,打印結果將從任何匹配的系列行對計算得出。難道在您使用phpMyAdmin操作的真實數據中,每個系列有多行?或者你想用area_code來代替嗎?您可能希望在查詢中包含*以查看將哪些數據用作計算的輸入。