使用VB.Net和SQL 2005
表1
Name FromDate ToDate
Sched1 20091201 20091231
Sched2 20090515 20090613
...,
在table2中,我想为FromDate和ToDate之间的日期添加时间
表2
Name Date StartTime EndTime
Sched1 20091201 080000 120000
...,
在我的应用程序中使用“AddTime”按钮。在click事件中,我想编写一个代码来添加日期的时间。
单击ADDTime按钮时。它应该检查table2中的max(date)。然后它应该显示table2中max(date)的下一个日期。
例如
Select max(date) from table where name = 'Sched1'.
它应该显示下一个日期意味着20091202.因为20091201数据在那里。
表2中没有Sched2的数据,所以它应该从table1显示StartDate 20090515。
如何为此条件制作代码或查询?
任何人都可以根据上述条件给我一个想法或样品。
答案 0 :(得分:2)
我相信以下查询将完成手头的任务。
Select isnull(max(t2.date)+1,t1.FromDate)
from table1 t1 inner join table2 t2
on t1.[Name] = t2.[Name]
where t1.[name] = 'Sched1'
查询正在连接Name上的两个表,之后它检查表2中是否存在'Sched1'的日期,如果是,它将返回最大日期+1天,如果不是,它将返回将TableD的FromDate返回给'Sched1'。
我建议你进一步阅读联接,你将无法正确但只有没有连接的普通查询,进一步考虑使用整数作为你的密钥。