当日期位于同一个表的不同行中时,如何查找日期差异?
我有一个表::
ItemID VersionNo CreatedDate
-------------------------------
1 3 7/9/2010
1 2 7/3/2010
1 1 5/3/2010
1 0 3/3/2010
2 0 4/4/2010
3 1 4/5/2010
3 0 3/4/2010
...其中版本 0 表示 .. 它是新生产的项目。这里我需要找到时间(两个版本之间的时间差距)并添加一列作为处理时间。 就像::
ItemID VersionNo CreatedDate ProcessTime
-------------------------------------------
1 3 7/9/2010 6Days or 6*24Hrs
1 2 7/3/2010 60Days
1 1 5/3/2010 2Days
1 0 3/3/2010 ''
2 0 4/4/2010 ''
3 1 4/5/2010 31Days
3 0 3/4/2010 ''
版本号不是固定的..意味着随着时间的推移,它可能会增加...如何在 MS Access 或 SQL-Server 中实现所需的结果。
预先感谢您的所有真诚努力。 谢谢
I have a table::
ItemID VersionNo CreatedDate
-------------------------------
1 3 7/9/2010
1 2 7/3/2010
1 1 5/3/2010
1 0 3/3/2010
2 0 4/4/2010
3 1 4/5/2010
3 0 3/4/2010
...where Version 0 means .. its a newly produced item. Here I need to find time,(time gap between two versions) and add a column as process time.
like::
ItemID VersionNo CreatedDate ProcessTime
-------------------------------------------
1 3 7/9/2010 6Days or 6*24Hrs
1 2 7/3/2010 60Days
1 1 5/3/2010 2Days
1 0 3/3/2010 ''
2 0 4/4/2010 ''
3 1 4/5/2010 31Days
3 0 3/4/2010 ''
VersionNo's are not Fixed..means with time, it could increase... How to acheive the desire result in MS Access or in SQL-Server.
Thanks in advance for all your sincere efforts.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
怎么样(访问):
How about (Access):
将表与其自身连接起来,如下所示 (SQL Server):
Join the table with itself, like this (SQL Server):
这是在 Access SQL 中,使用 3 个查询,每个步骤一个。
查询1,在itemID上进行自连接,其中版本号较小:
查询2,限制较小版本号的最大值:
查询3,现在执行datediff:
Here it is in Access SQL, using 3 queries, one for each step.
Query1, self-join on itemID where versionNo is smaller:
Query2, limit to max of smaller versionNos:
Query3, now do datediff:
SQL Server 2005,用于处理 VersionNo 存在间隙的情况。
SQL Server 2005, to handle the case where there are gaps in VersionNo.