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

Откуда:
Сообщений: 2
Всем привет. Помогите с запросом, пож-та.


SELECT      e.Badge,
            t.inf_employee_id , 
            e.Name  ,
           e.MiddleName  ,
           LastName  ,
            Passport ,
            t.TimeCardDate DATE_, дата рабочего дня
            DATENAME(DW,TimeCardDate) DAY_ , день недели
            ci.IN_ START, дата входа
            co.OUT_ STOP_, дата выхода
            t.reg+t.ot1+Unpaid Hours,  часы работы
            t.reg+t.ot1 Total , отработанные часы
            t.reg , смена(часы работы по умолчанию)
            t.OT1 , овертайм1
            t.OT2 , овертайм2
            t.Unpaid --обед
FROM  tr_approved t , inf_employee e , 
                                   ( 
                                    SELECT c.id , c.[DATE] IN_ , c.inf_employee_id
                                    FROM  tr_clock c
                                   ) ci
                                   ,
                                   ( SELECT c.id , c.[DATE] OUT_ , c.inf_employee_id
                                    FROM  tr_clock c
                                    ) co
WHERE t.inf_employee_id = ci.inf_employee_id
AND t.start_transaction_id = ci.id
AND t.stop_transaction_id = co.id
AND t.inf_employee_id = e.id 
AND t.TimeCardDate BETWEEN CAST('2014-10-01' AS DATE) AND  GETDATE() 
 ORDER BY t.TimeCardDate


Разъясняю. Так как бывает такое, что сотрудник заходит и выходит несколько раз, в рез-те запроса показываются несколько строк с одной и той же датой, но с разными часами. требуется подсчитать все часы столбцов за один день, когда дата в столбце t.TimeCardDate DATE_ повторяется. И вывести эти часы без повторения самой даты.Картинка с другого сайта.
31 окт 14, 13:15    [16782861]     Ответить | Цитировать Сообщить модератору
 Re: сумма значений столбца за один день без повторений дат  [new]
aleks2
Guest
Ну дык разучи GROUP BY.
31 окт 14, 13:20    [16782921]     Ответить | Цитировать Сообщить модератору
 Re: сумма значений столбца за один день без повторений дат  [new]
_Lelik_
Member

Откуда:
Сообщений: 2
aleks2,
разве одним group by Здесь обойтись можно?
есть запрос, кот суммирует часы, но тогда он не показывает первое время входа и последнее время выхода.

SELECT 
inf_employee_id ,
Name ,
MiddleName ,
LastName ,
Passport ,
DATE_, 
DAY_ , 
Start,
stop_,
SUM(Hours) Hours, 
SUM(Total) Total , 
SUM(reg)  AS reg, 
SUM(OT1)  AS ot1, 
SUM(OT2) AS ot2 ,
SUM(Unpaid) AS unpaid
FROM
(
SELECT e.Badge,
t.inf_employee_id ,
e.Name ,
e.MiddleName ,
LastName ,
Passport ,
t.TimeCardDate DATE_, 
DATENAME(DW,TimeCardDate) DAY_ , 
CAST(FLOOR(CAST(ci.IN_ AS FLOAT)) AS datetime) START, 
CAST(FLOOR(CAST(co.OUT_ AS FLOAT)) AS datetime) STOP_, 
t.reg+t.ot1+Unpaid Hours,
t.reg+t.ot1 Total , 
t.reg ,
t.OT1 ,
t.OT2 ,
t.Unpaid 
FROM tr_approved t , inf_employee e ,
(
SELECT c.id , MIN (c.[DATE]) IN_ , c.inf_employee_id
FROM tr_clock c
group by c.id, c.date, c.inf_employee_id
) ci
,
( SELECT c.id , MAX (c.[DATE]) OUT_ , c.inf_employee_id
FROM tr_clock c
group by c.id, c.date, c.inf_employee_id
) co
WHERE t.inf_employee_id = ci.inf_employee_id
AND t.start_transaction_id = ci.id
AND t.stop_transaction_id = co.id
AND t.inf_employee_id = e.id
and e.Badge=157
AND t.TimeCardDate BETWEEN CAST('2014-10-01' AS DATE) AND GETDATE()
) AS tbl
GROUP BY inf_employee_id, Name, MiddleName , LastName, Passport, DATE_, DAY_ , START, STOP_


К сообщению приложен файл. Размер - 106Kb
31 окт 14, 13:24    [16782957]     Ответить | Цитировать Сообщить модератору
 Re: сумма значений столбца за один день без повторений дат  [new]
Glory
Member

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

https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume
31 окт 14, 13:28    [16782983]     Ответить | Цитировать Сообщить модератору
 Re: сумма значений столбца за один день без повторений дат  [new]
Wlr-l
Member

Откуда:
Сообщений: 599
_Lelik_,
Тогда придется изучить еще и оконные функции.
31 окт 14, 14:50    [16783793]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить