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

Откуда:
Сообщений: 10
Здравствуйте! Есть две таблицы карточек с заданиями, которые находятся в двух базах данных. Подскажите как вывести информацию о количестве выполненных и не выполненных заданий по каждому отделу.

Сделал следующий запрос, но он выводит данные только одной БД. Как добавить данный из второй таблицы и суммировать их результаты?
SELECT d.DepartmentID, d.DepartmentName
, (SELECT COUNT(*) FROM Cards1 с WHERE d.DepartmentID = с.DepartmentID 
		AND с.ExecuteDate >= '01.05.2014' AND с.ExecuteDate <= '01.07.2014') AS 'выполнено'
, (SELECT COUNT(*) FROM Cards1 с  WHERE s.DepartmentID = с.DepartmentID
		AND с.Deadline >= '01.05.2014' AND с.Deadline <= '01.07.2014') AS 'не выполнено'		
FROM Departments AS d


DB1:

таблица Departments:
DepartmentID DepartmentName
1 отдел 1
2 отдел 2
3 отдел 3
4 отдел 4


таблица Cards1:
Number DepartmentID ExecuteDate Deadline
1 1 11.06.2014 12.06.2014
2 1 NULL 02.06.2014
3 2 NULL 15.06.2014
4 3 10.06.2014 10.06.2014


DB2:

таблица Cards2:
Number DepartmentID ExecuteDate Deadline
5 1 11.06.2014 12.06.2014
6 1 NULL 02.06.2014
7 2 NULL 15.06.2014
8 3 10.06.2014 10.06.2014
9 1 NULL 13.05.2014


Нужно получить:
DepartmentName выполнено не выполнено
отдел 1 23
отдел 2 02
отдел 3 20
отдел 4 00
21 июл 14, 00:58    [16332759]     Ответить | Цитировать Сообщить модератору
 Re: Суммирование запросов  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Lerain
Здравствуйте! Есть две таблицы карточек с заданиями, которые находятся в двух базах данных. Подскажите как вывести информацию о количестве выполненных и не выполненных заданий по каждому отделу.

Сделал следующий запрос, но он выводит данные только одной БД. Как добавить данный из второй таблицы и суммировать их результаты?
"Просто добавь воды" (с)
Полное имя объекта в MSSQL - [ServerName].[DatabaseName].[SchemaName].[ObjectName]
21 июл 14, 01:21    [16332829]     Ответить | Цитировать Сообщить модератору
 Re: Суммирование запросов  [new]
_human
Member

Откуда:
Сообщений: 569
Lerain,
например,
select sq.DepartmentID, sq.DepartmentName
, (SELECT COUNT(*) FROM Cards1 с WHERE sq.DepartmentID = с.DepartmentID 
		AND с.ExecuteDate >= '01.05.2014' AND с.ExecuteDate <= '01.07.2014') AS 'выполнено'
, (SELECT COUNT(*) FROM Cards1 с  WHERE s.DepartmentID = с.DepartmentID
		AND с.Deadline >= '01.05.2014' AND с.Deadline <= '01.07.2014') AS 'не выполнено'	
from
(
	SELECT d.DepartmentID, d.DepartmentName
	FROM /*DB1..*/Departments AS d
	union all
	SELECT d.DepartmentID, d.DepartmentName
	FROM /*DB2..*/Departments AS d
) sq
21 июл 14, 11:31    [16334065]     Ответить | Цитировать Сообщить модератору
 Re: Суммирование запросов  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
1) UNION запросов через Linked Server
2) UNION компонент в SSIS (предпочтительнее)
21 июл 14, 12:28    [16334492]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить