SQL-根据上一行更新行

时间:2018-11-30 11:45:12

标签: sql sql-server-2012

我有一个如下表。

ID            DateFrom         DateTo
33344        01-jan-2018     03-Jan-2018
33344        03-jan-2018     06-Jan-2018  
33344        09-jan-2018     NULL  
33344        10-jan-2018     NULL

这是我们接收数据的方式,因此在进入此阶段之前我无法对其进行任何控制。每个ID总是有一行,其中Dateto为NULL-我们假定这是该行中的最新日期。所有其他Dateto都应使用以下行DateFrom填充。尽管对于某些ID,只有一行数据应该是填充的DateFrom和NULL DateTo。例如,我上面想要的输出看起来像这样

ID            DateFrom         DateTo
33344        01-jan-2018     03-Jan-2018
33344        03-jan-2018     06-Jan-2018  
33344        09-jan-2018     10-jan-2018  
33344        10-jan-2018     NULL

如果再添加2列,则看起来像这样

ID            DateFrom         DateTo
33344        01-jan-2018     03-Jan-2018
33344        03-jan-2018     06-Jan-2018  
33344        09-jan-2018     10-jan-2018  
33344        10-jan-2018     15-jan-2018
33344        15-jan-2018     27-jan-2018  
33344        27-jan-2018     NULL

我希望这有意义并且有人可以提供帮助?我不知道从哪里开始。谢谢杰西

2 个答案:

答案 0 :(得分:1)

您需要from django.db.models import Coalesce, Sum, Value @property def earnings_per_share(self): return Finance.objects.filter( stock__stats=self ).aggregate( total=Coalesce(Sum('net_income'), Value(0)) )['total'] / self.shares_outstanding

lead()

答案 1 :(得分:0)

您可以使用<div Class="box"> <p class="Add" id="conditional-tag">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor </p> <div class="inner-box"> <img src="house.jpg" class="img"> </div> <div class="wrapper"> <p class="Text-box"> <p class="Add" id="hideOnClick">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor</p> <p class="text">2 Storey Terrace House</p> <p>Size &nbsp;&nbsp;&nbsp;&nbsp; : 1,860/1,302 sq.ft</p> <p>Tenure &nbsp;&nbsp;&nbsp;&nbsp; : Freehold</p> <p class="Add-text">RM37,8000</p> <span id="dots">...</span> <span id="more"> <!--p style="font-weight: bolder;">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor</p--> <p class="text">2 Storey Terrace House</p> <p>Size &nbsp;&nbsp;&nbsp;&nbsp; : 1,860/1,302 sq.ft</p> <p>Tenure &nbsp;&nbsp;&nbsp;&nbsp; : Freehold</p> <p class="Add-text">RM37,8000</p> </span> </p> <button onclick="myFunction()" id="myBtn">Read more ></button> <script> function myFunction() { var dots = document.getElementById("dots"); var moreText = document.getElementById("more"); var btnText = document.getElementById("myBtn"); document.getElementById('hideOnClick').innerHTML = "Hello to the world"; document.getElementById('conditional-tag').style.display = "block"; if (dots.style.display === "none") { dots.style.display = "inline"; btnText.innerHTML = "Read more"; moreText.style.display = "none"; document.getElementById('hideOnClick').innerHTML = "No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor"; document.getElementById('conditional-tag').style.display = "none"; } else { dots.style.display = "none"; btnText.innerHTML = "Read less >"; moreText.style.display = "inline"; } } </script> </div> </div>。在lead()中,您可以使用可更新的CTE:

update