我没有理解这一点,并想知道是否有人可以帮助我。
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
回电话。但是我该怎么做呢?
答案 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。