将2个表的总和插入一行

时间:2010-02-01 09:33:49

标签: mysql

我想在“总计”表格中存储从其他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?*/

我做错了什么?

由于

3 个答案:

答案 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 回答