2016-03-14 61 views
0

我有了這樣的數據一個臨時表: enter image description hereSQL從/返回日期有間隙

我需要拿出T-SQL,將顯示在日期/出了很多像這樣的: enter image description here

由於很多空去上15年6月12日,我需要表現出2個獨立的行允許在日期範圍內的差距時,很多沒有數量。我嘗試過使用MIN和MAX,但我似乎無法弄清楚如何考慮時間差距。任何幫助將不勝感激。我正在使用SQL Server 2012.

謝謝。

+0

你可能需要數量的運行總和,並使用與差距和島嶼問題 –

+0

任何解決方案,我有一個運行總計數量 - 它被稱爲Run Bal。 – gcresse

回答

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); 
+0

謝謝戈登。這很好。 – gcresse