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

Откуда:
Сообщений: 21
Привет всем. Помогите кто знает. Надо суммировать все часы которые проработал работник за неделю.
Вот запрос. Из ExitTime вычитается EnterTime и получается столбец TotalTime . И так на каждый день. Мне нужно как-то вычесть 1 час с обеда и суммировать все часы работы за неделю. ПЛИЗЗЗЗ ХЕЛП!!!

SELECT t_min.Data,t_min.PersonID, [First Name], [Last Name], EnterTime, ExitTime,
CONVERT(varchar( 6), DATEDIFF( second, EnterTime, ExitTime)/3600) 
+ ':' + RIGHT('0' + CONVERT(varchar(2), (DATEDIFF(second, EnterTime, ExitTime) % 3600) / 60), 2) 
+ ':' + RIGHT('0' + CONVERT(varchar(2), DATEDIFF(second, EnterTime, ExitTime) % 60), 2) 
AS TotalTime 
FROM 
  (SELECT Data, PersonId, MIN( Time ) AS EnterTime
   FROM AccesControl
 WHERE [In/Out Status] =  'Out'
   GROUP BY Data, PersonId,[First Name], [Last Name] ) 
   AS t_min

INNER JOIN

  (SELECT Data, PersonId, [First Name], [Last Name], MAX ( Time ) AS ExitTime
   FROM AccesControl
   WHERE [In/Out Status] =  'In'
   GROUP BY Data, PersonId,[First Name], [Last Name] ) 
   AS t_max

ON t_min.Data = t_max.Data AND t_min.PersonId = t_max.PersonId
18 авг 14, 11:59    [16454912]     Ответить | Цитировать Сообщить модератору
 Re: Сложение часов работы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PhoenixFire
Мне нужно как-то вычесть 1 час с обеда и суммировать все часы работы за неделю.

Вычитание делается оператором -.
Суммирование производится функцией SUM() с указанием GROUP BY.
18 авг 14, 12:01    [16454924]     Ответить | Цитировать Сообщить модератору
 Re: Сложение часов работы  [new]
PhoenixFire
Member

Откуда:
Сообщений: 21
Ясно, но куда его ставить этот СУМ??? Мне просто на работе такое задание дали, а вот как сделать без понятия. Может в новом запросе?
18 авг 14, 12:16    [16454994]     Ответить | Цитировать Сообщить модератору
 Re: Сложение часов работы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PhoenixFire
но куда его ставить этот СУМ???

Наверное туда, где вы хотите "суммировать все часы работы" ?

PhoenixFire
Мне просто на работе такое задание дали, а вот как сделать без понятия.

И причем тут другие ? Они должны за вас написать запрос ?
18 авг 14, 12:18    [16455008]     Ответить | Цитировать Сообщить модератору
 Re: Сложение часов работы  [new]
PhoenixFire
Member

Откуда:
Сообщений: 21
Да притом что никто не спросил знаю ли я как делать это!!
Я SQL Server не очень знаю, как вы уже поняли
18 авг 14, 12:24    [16455040]     Ответить | Цитировать Сообщить модератору
 Re: Сложение часов работы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PhoenixFire
Я SQL Server не очень знаю, как вы уже поняли

И что вы предлагаете то ?
Чтобы вашу задание сделали за вас ?
Или чтобы вам прочитали курс лекций по SQL ?
Если не можете писать запросы, то найдите какой-нибудь инструмент для выборки данных, в которм можно работать мышкой без знаний SQL
18 авг 14, 12:28    [16455068]     Ответить | Цитировать Сообщить модератору
 Re: Сложение часов работы  [new]
PhoenixFire
Member

Откуда:
Сообщений: 21
я попросил помощь, в том что не знаю. Не предлагал писать за меня, а дат совет. Вы сказали с помощью СУМ суммировать все часы. Но куда его ставить? И плюс к этому, все преобразилось в varchar, так что их нельзя суммировать
18 авг 14, 12:34    [16455127]     Ответить | Цитировать Сообщить модератору
 Re: Сложение часов работы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PhoenixFire
Не предлагал писать за меня, а дат совет.

Совет вам дали

PhoenixFire
Но куда его ставить?

" Не предлагал писать за меня, а дат совет"
В место, положенное ему по синтаксису
Вы знаете, что такое синтаксис ?

PhoenixFire
И плюс к этому, все преобразилось в varchar, так что их нельзя суммировать

С ума сойти. Само преобразовалось что ли?
18 авг 14, 12:37    [16455151]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить