0
我有了这样的数据一个临时表: SQL从/返回日期有间隙
由于很多空去上15年6月12日,我需要表现出2个独立的行允许在日期范围内的差距时,很多没有数量。我尝试过使用MIN和MAX,但我似乎无法弄清楚如何考虑时间差距。任何帮助将不胜感激。我正在使用SQL Server 2012.
谢谢。
我有了这样的数据一个临时表: SQL从/返回日期有间隙
由于很多空去上15年6月12日,我需要表现出2个独立的行允许在日期范围内的差距时,很多没有数量。我尝试过使用MIN和MAX,但我似乎无法弄清楚如何考虑时间差距。任何帮助将不胜感激。我正在使用SQL Server 2012.
谢谢。
您想在平衡从零切换时划分组。因此,您可以通过对0个运行余额进行累计计数来定义组。如果以相反的顺序执行此操作,该值实际上会更加准确。
这提供了一个分组,您可以使用聚合:
select lot, min(trandate), max(trandate)
from (select t.*,
sum(case when runbal = 0 then 1 else 0 end) over
(partition by lot order by trandate desc) as grp
from t
) t
group by grp
order by min(trandate);
谢谢戈登。这很好。 – gcresse
你可能需要数量的运行总和,并使用与差距和岛屿问题 –
任何解决方案,我有一个运行总计数量 - 它被称为Run Bal。 – gcresse