由于该批次于2015年6月12日变空,我需要显示2个单独的行,以便在批次没有数量时允许日期范围内的差距。我尝试过使用MIN和MAX,但我似乎无法弄清楚如何允许时间间隔。任何帮助将不胜感激。我正在使用SQL Server 2012。
感谢。
答案 0 :(得分:1)
当平衡从零切换时,您想要分组。因此,您可以通过执行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);