我有一个表中的下列信息称为TankInfo:SQL条件求和和最大时间
Tank Compartment Product _Date _Time Volume x x1 GAS 2017-08-02 10:42 10000 x x2 GAS 2017-08-02 10:44 20000 x x1 GAS 2017-08-02 13:42 9000 x x2 GAS 2017-08-02 13:39 20000 x x1 GAS 2017-08-02 23:42 9000 x x2 GAS 2017-08-02 23:54 21000 y y1 GAS 2017-08-02 10:42 10000 y y2 DIESEL 2017-08-02 10:43 5000 y y1 GAS 2017-08-02 14:42 10000 y y2 DIESEL 2017-08-02 14:52 5000 y y1 GAS 2017-08-02 23:12 10000 y y2 DIESEL 2017-08-02 23:51 5000
我需要能够添加厢容积在一起,如果他们是相同的坦克和携带相同产品,只汇总最大时间记录。所以上表将被归结为如下所示:
Tank Product _Date _Time Volume x GAS 2017-08-02 23:54 30000 y GAS 2017-08-02 23:12 10000 y DIESEL 2017-08-02 23:51 5000
我想我可以做到以下几点:
Select
z.Tank
,z.Product
,z._Date
--,z._Time
,sum(Volume) Volume
from (
Select
ti.Tank
,ti.Compartment
,ti.Product
,ti._Date
,max(ti._Time) _Time
from TankInfo ti
Group by
ti.Tank
,ti.Compartment
,ti.Product
,ti._Date
) z
left join(
Select
Tank
,Compartment
,Product
,_Date
,_Time
,Volume
from TankInfo
) x
on x.Tank = z.Tank
and x.Compartment = z.Compartment
and x.Product = z.Product
and x._Time = z._Time
Group by
z.Tank
,z.Product
,z._Date
运行此,我得到了下面的表格,和我我坚持如何能够获得最大时间。有任何想法吗?
Tank Product _Date _Time Volume
x GAS 2017-08-02 23:42 9000
x GAS 2017-08-02 13:39 21000
y GAS 2017-08-02 23:12 10000
y DIESEL 2017-08-02 23:51 5000
第一排体积30000? –
第一行为30,000,因为它查看x1和x2的最大时间,并将两个卷相加。 21000 + 9000并且将这个容器的总结x设为30000 – ghawes