列中的总和

时间:2016-02-22 13:38:07

标签: sql ms-access select sum inner-join

我没有理解这一点,并想知道是否有人可以帮助我。

TLB_UKKEL包含气候记录

Date    | TGem | TEqui 
1/1/2016, 10.1 , 9.3 
2/1/2016, 11.3 , 9.8 
3/1/2016, 15.3 , X
...

TEqui是:( 0.6*TGem + 0.3* TGem from de day before + 0.1 * TGem from two day's before)的总和。

前一天我可以使用INNER JOIN回电话。但是我该怎么做呢?

2 个答案:

答案 0 :(得分:3)

您可以像这样使用LEFT JOINS:

SELECT t.Date,T.TGem,
       (T.TGEM*0.6)+(coalesce(S.TGem,0)*0.3)+(coalesce(F.TGem,0)*0.1) as TEqui
FROM TLB_UKKEL t
LEFT OUTER JOIN TLB_UKKEL s ON(t.date = s.date+1)
LEFT OUTER JOIN TLB_UKKEL f ON(t.date = f.date+2)

您没有指定DBMS,因此我使用了coalesce ..并非所有DBMS都支持,因此您可能需要将其更改为NVL或isnull或其他内容。

如果之前或2天之前不存在,它将把这一天的总和归结为0.(再次......不知道那是不是你想要的,因为你的解释缺少一些细节)

答案 1 :(得分:1)

谢谢,

我试过了。但它没有用。

如果我这样做:

SELECT t.Datum,T.TGem, (T.TGem*0.6)+(F.TGem * 0.4) as QR_Tequi FROM Gegevens1 t LEFT OUTER JOIN Gegevens1 f ON (t.Datum = f.Datum+1)

如果我使用上面的代码,一切都很完美。如果我使用第二个LEFT OUTER JOIN,我会得到一个语法错误3075。