Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2022, 11:15   #1
krioxi
Новичок
Джуниор
 
Регистрация: 06.02.2011
Сообщений: 1
Вопрос запрос

есть запрос
SELECT
ID,
ServTime,
Date AS ServDate,
[Quantity],
[Additional],
EmployeeInBranch_Employee,
Code,
Client,
TimeBegin,
TimeEnd,
Comment,
ClientsSimultaneously,
NonAppeared,
Vacation,
Commercial

FROM
((SELECT
ID,
ServDateTime,
ServTime,
ServDate,
Served_Employee,
[Quantity],
[Additional],
Code,
Client,
Comment,
NonAppeared,
Commercial = 0

FROM
Served

WHERE
(
Served.ServDateTime >= @DateFrom
AND
Served.ServDateTime < @DateTo
)
)

UNION ALL

(SELECT
ID,
ServDateTime,
ServTime,
ServDate,
Served_Employee,
[Quantity],
Additional = 0,
Code,
Client,
Comment = null,
NonAppeared = 0,
Commercial = 1

FROM
CommServed

WHERE
(
ServDate >= @DateFrom
AND
ServDate < @DateTo
)
)) as Served

RIGHT JOIN

(
SELECT
CONVERT(TIME, [TimeBegin]) AS TimeBegin,
CONVERT(TIME, TimeEnd) AS TimeEnd,
Date,
[ClientsSimultaneously],
EmployeeInBranch_Employee,
(CASE
WHEN Date BETWEEN EmployeeInBranchSet.Vacation1From AND EmployeeInBranchSet.Vacation1To THEN 1
WHEN Date BETWEEN EmployeeInBranchSet.Vacation2From AND EmployeeInBranchSet.Vacation2To THEN 1
WHEN Date BETWEEN EmployeeInBranchSet.Vacation3From AND EmployeeInBranchSet.Vacation3To THEN 1
ELSE 0
END) AS Vacation
FROM
[OCRI].[dbo].[TimeTableSet]

LEFT JOIN EmployeeInBranchSet
ON (EmployeeInBranchSet.Id=TimeTable_E mployeeInBranch)

CROSS JOIN
(
SELECT
TOP (DATEDIFF(DAY, @DateFrom, DATEADD(DAY, -1, @DateTo)) + 1)
Date = DATEADD(DAY, ROW_NUMBER() OVER(ORDER BY a.object_id) - 1, @DateFrom)

FROM
sys.all_objects a

CROSS JOIN
sys.all_objects b
)
as Dates

WHERE EmployeeInBranch_Branch = @Branch
)
as TimeTable

ON
(
Served_Employee = EmployeeInBranch_Employee
AND
ServTime >= TimeBegin
AND
ServTime < TimeEnd
AND
ServDate = Date
AND
(ServDate BETWEEN @DateFrom AND @DateTo
OR
ServDate IS NULL)
)
который показывает расписание по отделам, как объединить два определенных отдела
krioxi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
приложение Weather, делаю запрос оп всем параметрам, которые были указанны на сайте, но запрос не выполняется MustafaDzhemadin Помощь студентам 2 19.11.2019 00:14
SQL запрос в php - запрос в базу данных так, чтобы еще возвращалось значение, сколько строк затронуто volni PHP 29 16.09.2019 11:49
Запрос на выборку и отчет на этот запрос Camelot_2012 Microsoft Office Access 2 21.12.2011 16:48
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50