有关数据库和/或相关应用程序中的日期时间逻辑的问题

时间:2016-03-16 19:29:04

标签: sql-server database-design

我根本不熟悉数据库,但我仍然希望将一些数据从ODBC连接到Excel中以获得一些易于刷新的报告。我提取的数据来自具有SQL Server数据库v8的应用程序。因此,我不确定是否可以使用SQL应用后面的逻辑。我认为应用程序本身在一种SQL查询中收集数据本身。

示例:表1

for (int j = 0; j < MAX; ++i)

示例:表2

 PersID DeptID Start_Date Weighting
 101    2222   01.01.2016 0,8
 101    2222   01.03.2016 1,0

最后逻辑应该将表“加入”:

PersID DeptID Date       Comment
101    222    01.02.2016 Hello World

解决方案是给“加权”输出0,8,因为它自2016年1月1日起仍然是相同的,并且只是在2016年3月1日开始时的变化

任何建议如何解决这个问题在Excel,SQL或只是一些基本的理解如何以这种方式保存数据的应用程序工作高度赞赏,因为我很好奇。

我认为伪代码就像:确定一个日期和一个日期列表之间的最小差异,但只搜索&gt; =当前所选日期的日期。

但是,对于更大的查询,这应该是非常缓慢和要求吗?

1 个答案:

答案 0 :(得分:0)

我做的通常的解决方案是选择前1 ...其中Startdate&lt; = ... order by startdate desc

但这仅适用于一条记录。如果您需要多行,我认为您需要使用视图或CTE和窗口函数。