2010-02-01 28 views
0

我想在「總計」表格的一行中存儲從其他兩個表格中計算出的總和。將2個表格的總和插入到一行中

我想爲每個表使用一列。

我試過如下:

 
INSERT INTO Totals 
(
    Date, 
    FirstTableSum, 
    SecondTableSum 
) 

SELECT 
    '2010/01/31', 
    SUM(t.Data1), 
    SUM(v.Data2) 
FROM 
    FirstTable as t, 
    SecondTable as v 
WHERE 
    t.Date = '2010/01/31' 
AND v.Date = '2010/01/31' 

如果我做一個查詢檢查2代不同的表我有不同的值的總和。

 
SELECT SUM(Data1) FROM FirstTable WHERE Date='2010/01/31' 
/*The result is different from FirstTableSum: Why?*/ 

SELECT SUM(Data2) FROM SecondTable WHERE Date='2010/01/31' 
/*The result is different from SecondTableSum Why?*/ 

我在做什麼錯?

謝謝

回答

2

試試這個

SELECT 
(SELECT SUM(Data1) FROM FirstTable WHERE [email protected]) FirstTableSum, 
(SELECT SUM(Data2) FROM SecondTable WHERE [email protected]) SecondTableSum 
+0

它的工作原理和解決方案真的很清楚! 謝謝換寵! – 2010-02-01 10:17:20

1

嘗試使用union語句編寫查詢。 從 FirstTable SELECT '2010/01/31', SUM(t.Data1) 爲t

工會

SELECT '2010/01/31', SUM(t.Data1) 從 SecondTable爲T

+0

謝謝亞歷克斯! 我完全忘了這個! – 2010-02-01 10:16:53

1

你是由於記錄數是(FirstTable的行數* SecondTable的行數),所以總和將是錯誤的

您要麼加入一個有意義的條件表,要麼他們加入不能連接,然後考慮選擇與兩個內部選擇,如切換答案

+0

嗨Medpai!非常感謝! – 2010-02-01 10:17:47

相關問題