Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос поэтапного добавление часов к датам  [new]
rossijanin
Member

Откуда:
Сообщений: 31
Ребят помогите всю голову сломал не пойму как сделать:

Есть две таблицы:

-Таблица периодов

Дата начала
Дата окончания

-Таблица работ с часами
Порядковый номер
Работа
Часы

На основании данных таблиц сделал Представление(Вьюху).

Но этого мало хотелось бы так же в ней видеть колонки "Дата начала работ" и "Дата окончания работ"

К сообщению приложен файл. Размер - 138Kb
25 июн 12, 16:21    [12771794]     Ответить | Цитировать Сообщить модератору
 Re: Запрос поэтапного добавление часов к датам  [new]
Glory
Member

Откуда:
Сообщений: 104751
функция DATEADD() вам поможет
25 июн 12, 16:26    [12771839]     Ответить | Цитировать Сообщить модератору
 Re: Запрос поэтапного добавление часов к датам  [new]
rossijanin
Member

Откуда:
Сообщений: 31
А можно поконкретней ?
25 июн 12, 16:37    [12771932]     Ответить | Цитировать Сообщить модератору
 Re: Запрос поэтапного добавление часов к датам  [new]
rossijanin
Member

Откуда:
Сообщений: 31
Все дело в том что к начальной дате надо прибавить часы и затем, что получилось прибавить еще часы которые есть в этом периоде и так далее ....
25 июн 12, 16:40    [12771945]     Ответить | Цитировать Сообщить модератору
 Re: Запрос поэтапного добавление часов к датам  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
ну так заджойните ещё раз "Таблица работ с часами" по left join по условию IDREC и "Порядковый номер"
суммируйте и используйте DATEADD
25 июн 12, 17:17    [12772212]     Ответить | Цитировать Сообщить модератору
 Re: Запрос поэтапного добавление часов к датам  [new]
rossijanin
Member

Откуда:
Сообщений: 31
Что то я не догоняю (((
Подскажите пожалуйста на примере ....

SELECT dbo.[@_date].Дата_начала, dbo.[@_date].Дата_окончания, dbo.[@_work].Порядковый_номер, dbo.[@_work].Работа, dbo.[@_work].Часы
FROM dbo.[@_date] FULL OUTER JOIN
dbo.[@_work] ON dbo.[@_date].IDREC = dbo.[@_work].IDRECPARENT
25 июн 12, 17:27    [12772318]     Ответить | Цитировать Сообщить модератору
 Re: Запрос поэтапного добавление часов к датам  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
ну как-то так

SELECT 
	D1.Дата_начала
	, D1.Дата_окончания
	, W1.Порядковый_номер
	, W1.Работа
	, W1.Часы
	, DATEADD(HH, ISNULL(SUM(W2.Часы), 0), D1.Дата_начала) Дата_начала_работ
	, DATEADD(HH, ISNULL(SUM(W2.Часы), 0) + W1.Часы, D1.Дата_начала) Дата_окончания_работ
FROM 
	dbo.[@_date] D1
INNER JOIN dbo.[@_work] W1 ON D1.IDREC = W1.IDRECPARENT 
LEFT JOIN dbo.[@_work] W2 ON D1.IDREC = W2.IDRECPARENT AND W2.Порядковый_номер < W1.Порядковый_номер
GROUP BY
	D1.Дата_начала
	, D1.Дата_окончания
	, W1.Порядковый_номер
	, W1.Работа
	, W1.Часы	


ЗЫЖ подумал, что dbo.[@_date] и dbo.[@_work] связаны один-ко-многим
25 июн 12, 18:04    [12772592]     Ответить | Цитировать Сообщить модератору
 Re: Запрос поэтапного добавление часов к датам  [new]
rossijanin
Member

Откуда:
Сообщений: 31
HandKot .... ОГРОМЕННОЕ, ЧЕЛОВЕЧЕСКОЕ СПАСИБО !!!
То что надо !!!
25 июн 12, 22:13    [12773425]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить