我想在“总计”表格中存储从其他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?*/
我做错了什么?
由于
答案 0 :(得分:2)
试试这个
SELECT
(SELECT SUM(Data1) FROM FirstTable WHERE Date=@date) FirstTableSum,
(SELECT SUM(Data2) FROM SecondTable WHERE Date=@date) SecondTableSum
答案 1 :(得分:1)
尝试使用union语句编写查询。 选择 '2010/01/31', SUM(t.Data1) 从 FirstTable为t
联合
选择 '2010/01/31', SUM(t.Data1) 从 SecondTable为t
答案 2 :(得分:1)
你在INSERT语句中的两个表之间进行JOIN,由于记录数是(FirstTable行数* SecondTable行数),总和将是错误的
你要么以有意义的条件加入表格,要么他们不能加入,那么考虑用两个INNER SELECTS选择SELECT,比如 zapping 回答