开发者

Inserting Sum of 2 tables into a row

I would like to store in a row of a 'Totals' table the sum calculated from 2 other tables.

I want to use a column for each table.

I tried the following:

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'

If I make a query to check the sums of the 2 distinct tables I have different values.

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?*/

What am I doing wrong?

Thanks


try this

SELECT 
 (SELECT SUM(Data1) FROM FirstTable WHERE Date=@date) FirstTableSum,
 (SELECT SUM(Data2) FROM SecondTable WHERE Date=@date) SecondTableSum


try to write the query using a union statement. SELECT '2010/01/31', SUM( t.Data1 ) from FirstTable as t

union

SELECT '2010/01/31', SUM( t.Data1 ) from SecondTable as t


You are making a JOIN between the two table in your INSERT statement, the sum will be wrong since number of records is (FirstTable number of rows * SecondTable number of rows)

You either JOIN the tables with a meaningful condition, or if they are not join-able then consider SELECT with two INNER SELECTS, like zapping answer

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜