Sql 列内求和

Sql 列内求和,sql,ms-access,select,sum,inner-join,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自前一天起+0.1*TGem自前两天起) 前一天我可以通过内部连接回电话。但是我如何计算它们的总和呢?您可以像这样使用左连接: SELECT t.Date,T.TGem,

我不明白这一点,不知道是否有人能帮我解决这个问题

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自前一天起+0.1*TGem自前两天起


前一天我可以通过
内部连接回电话
。但是我如何计算它们的总和呢?

您可以像这样使用左连接:

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或其他


如果前一天或前两天不存在,它将把这一天加起来为0。(再次..不知道这是否是您想要的,因为您缺少一些详细信息)

您可以像这样使用左连接:

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或其他

如果前一天或前两天不存在,它将把这一天相加为0。(再次..不知道这是否是您想要的,因为您的解释缺少一些细节)

谢谢

我试过了。但它不起作用

如果我这样做:

选择t.Datum、t.TGem、,
(T.TGem*0.6)+(F.TGem*0.4)作为QR_Tequi
来自Gegevent
左外连接壁龛1 f开启(t.Datum=f.Datum+1)

如果我使用上面的代码,一切都会完美地工作。如果使用第二个左外联接,则会出现语法错误3075。

谢谢

我试过了。但它不起作用

如果我这样做:

选择t.Datum、t.TGem、,
(T.TGem*0.6)+(F.TGem*0.4)作为QR_Tequi
来自Gegevent
左外连接壁龛1 f开启(t.Datum=f.Datum+1)


如果我使用上面的代码,一切都会完美地工作。如果使用第二个左外联接,则会出现语法错误3075。

这是用于哪个DBMS的?如果没有前一天,会发生什么情况?@ypercubeᵀᴹ 这是一个ms Access数据库。
@Juan Carlos Oropeza
只有前两条没有前一天的记录,其他3000条记录在行。这是用于哪个DBMS的?如果没有前一天会发生什么情况?@ypercubeᵀᴹ 这是一个ms Access数据库。
@Juan Carlos Oropeza
只有前两条记录没有前一天的记录,其他3000条记录在行。它在Access数据库中。只是一个普通的本地数据库。只有前两个日期不存在。因此,我可能会在那里生成一个0。它位于ACCESS数据库中。只是一个普通的本地数据库。只有前两个日期不存在。所以我可能会得到一个0。