在一列内求和
Posted
技术标签:
【中文标题】在一列内求和【英文标题】:Sum within a column 【发布时间】:2016-06-03 23:12:51 【问题描述】:我不明白这一点,想知道是否有人可以帮助我解决这个问题。
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
回电。但是我怎样才能把它们加起来呢?
【问题讨论】:
这适用于哪个 DBMS? 如果没有前一天会怎样? @ypercubeᵀᴹ 适用于 ms Access 数据库。@Juan Carlos Oropeza
只有前2个没有前一天的,其他3000条记录在行。
【参考方案1】:
你可以像这样使用左连接:
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 。(再次......不知道这是否是你想要的,因为你的解释缺少一些细节)
【讨论】:
它在 ACCESS 数据库中。只是一个普通的本地数据库。只有前 2 个日期不存在。所以我的结果可能是 0。【参考方案2】:谢谢,
我试过了。但它不起作用。
如果我这样做:
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。
【讨论】:
以上是关于在一列内求和的主要内容,如果未能解决你的问题,请参考以下文章
iview 中table列 一列显示多个数据(后台返回数组显示在列内)