Как вставить время между двумя датами - PullRequest
0 голосов
/ 07 февраля 2010

Использование VB.Net и SQL 2005

Table1

Name   FromDate ToDate

Sched1 20091201 20091231
Sched2 20090515 20090613
...,

В таблице2 я хочу добавить время для даты между FromDate и ToDate

Table2

Name   Date     StartTime EndTime

Sched1 20091201  080000    120000
...,

В моем приложении я использую кнопку «AddTime». В событии click я хочу написать код для добавления времени для дат.

Когда я нажимаю кнопку ADDTime. Следует проверить макс (дата) в таблице2. Тогда он должен показать следующую дату максимума (date) в таблице 2.

Например

Select max(date) from table where name = 'Sched1'. 

Должно быть указано, что следующая дата означает 20091202. потому что 20091201 Данные есть.

Нет данных в таблице 2 для Sched2, поэтому должно отображаться StartDate 20090515 из таблицы 1.

Как сделать код или запрос для этого условия?

Может ли кто-нибудь дать мне идею или образцы для вышеуказанного условия.

1 Ответ

2 голосов
/ 07 февраля 2010

Я полагаю, что следующий запрос выполнит поставленную задачу.

Select isnull(max(t2.date)+1,t1.FromDate) 
from table1 t1 inner join table2 t2
on t1.[Name] = t2.[Name]
where t1.[name] = 'Sched1'

Запрос объединяет обе таблицы по имени, и после этого он проверяет, есть ли в таблице 2 какая-либо дата для «Sched1», в таком случае он вернет максимальную дату +1 день, а если нет, то будет вернуть FromDate из Table1 для «Sched1».

Я рекомендую вам прочитать далее о соединениях, вы не сможете правильно, но только тривиальные запросы без объединений, далее рассмотрите возможность использования целых чисел для ваших ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...