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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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