2014-11-28 4 views
-3

У меня есть две таблицы, как это:SQL Server - запрос

DECLARE @OpenTickets TABLE 
(
    [Month] SMALLINT 
    ,[Year] SMALLINT 
    ,[TotalOpen] INT 
    ,UserDepartmentID SMALLINT 
) 

INSERT INTO @OpenTickets 
VALUES(11, 2014, 201,36), (11, 2014, 677, 106) 


DECLARE @ResolveTickets TABLE 
(
    [Month] SMALLINT 
    ,[Year] SMALLINT 
    ,[TotalResolved] INT 
    ,UserDepartmentID SMALLINT 
    ,AVR INT 
) 

INSERT INTO @ResolveTickets 
VALUES(11, 2014, 202, 36, 2855), (11, 2014, 591, 106, 1990) 

select * from @OpenTickets 
select * from @ResolveTickets 

Я хочу окончательного вывода, как

Month Year UserDepartmentID TotalOpen TotalResolved AVR 
---------------------------------------------------------------- 
11  2014  36    201  202   2855 
11  2014  106    677  106   1990 

ответ

1

Использование INNER JOIN:

select a.*, b.TotalResolved, b.AVR 
from @OpenTickets a inner join 
@ResolveTickets b on a.UserDepartmentID = b.UserDepartmentID 
0

Try соединения таблиц на UserDepartmentID ...

select op.[Month], 
op.[Year], 
op.UserDepartmentID, 
TotalOpen, 
TotalResolved, 
AVR 
from @OpenTickets op inner join @ResolveTickets rt 
on op.UserDepartmentID = rt.UserDepartmentID 
0

Вы можете использовать внутреннее соединение. Вы присоединитесь к обеим таблицам по уникальному идентификатору своего отдела (UserDepartmentID), и вы получите всю информацию из обеих таблиц, у которой есть UserDepartmentID.

запрос будет выглядеть следующим образом:

select a.*, b.TotalResolved, b.AVR 
from @OpenTickets a 
join @ResolveTickets b on a.UserDepartmentID = b.UserDepartmentID 
0

Это должно работать.

select OpenTickets.Month, OpenTickets.Year, OpenTickets.UserDepartmentID, OpenTickets.TotalOpen, ResolveTickets.TotalResolved, ResolveTickets.AVR 
from OpenTickets 
inner join ResolveTickets 
on (OpenTickets.UserDepartmentID = ResolveTickets.UserDepartmentID 
&& OpenTickets.Year = ResolveTickets.Year 
&& OpenTickets.Month= ResolveTickets.Month) 

Я присоединился к двум таблицам UserDepartmentID, Year and Month.

Конечно, это решение не является полным, поскольку ограничения данных не указаны.

+0

хороший момент, отредактирован. –

0

Попробуйте это:

SELECT o.Month, 
     o.Year, 
     o.UserDepartmentID, 
     o.TotalOpen, 
     r.TotalResolved, 
     r.AVR 
FROM @OpenTickets o 
     JOIN @ResolveTickets r 
     ON o.Month = r.Month 
      AND o.Year = r.Year 
      AND o.UserDepartmentID = r.UserDepartmentID 

Вы можете присоединиться как таблицы путем сопоставления month, year и userdepartmentID