SQL Query从每日报价中获取每月更改百分比

时间:2016-08-13 18:52:47

标签: sql sql-server

我有下表,我想从中获得每月更改%

Data Image

我使用以下查询获取每月更改:

document.oncontextmenu = new Function("return false"); //No right clicks
document.onclick = new Function("return false"); //No left clicks

此查询的结果:

Result Image

除非ht.Quote_Date是星期日或星期六,或者表中缺少记录的假日,否则一切正常。在这种情况下,应考虑假日前的可用日期,以便我不会获得上面结果图中显示的NULL。

您能告诉我正确的查询以获得所需的结果吗?

2 个答案:

答案 0 :(得分:2)

我建议SELECT ct.Quote_Date, ht.Quote_Date AS htDate, ct.Quote_Price, ht.Quote_Price AS [htPrice], ((ct.Quote_Price - ht.Quote_Price)/ht.Quote_Price)*100 AS ChangePerc FROM #TempStock ct OUTER APPLY (SELECT TOP 1 ht.* FROM #TempStock ht WHERE ht.Quote_Date <= DATEADD(month, -1, ct.Quote_Date) ORDER BY ht.Quoate_Date DESC ) ht ORDER BY ct.Quote_Date DESC;

cast(<col> as date)

注意:

  • 您应该使用日期进行日期算术。没有理由来回演员。
  • 如果日期包含时间组件,请使用for(i=0; i<= DeleteList.length; i++) { grid.dataSource.remove(grid.dataSource.get(DeleteList[i])); } 删除时间组件。

答案 1 :(得分:0)

外部申请可以帮助您:

<nimbus-jwt-version>3.1.2</nimbus-jwt-version>
<dependency>
    <groupId>com.nimbusds</groupId>
    <artifactId>nimbus-jose-jwt</artifactId>
    <version>${nimbus-jwt-version}</version>
</dependency>

OUTER APPLY中的WHERE子句将带来具有相同或更短日期的第一条记录。