Объединение столбцов из разных таблиц на сервере SQL - PullRequest
1 голос
/ 16 марта 2020

Я пытаюсь выбрать столбцы из разных таблиц и создать новую таблицу, например, «тест». если входные данные из столбцов «Operador» и «Данные», вставленные в таблицы: «Занят», «Вход», не могут найти входы тех же столбцов из таблицы «Atendidas», тогда отображается NULL. Это, вероятно, просто, но я не могу туда добраться.

Мне нужен следующий пример:

Table Atendidas:

ID   Ano         Mes             Data        Operador   Atendidas
1    2020    JANEIRO 2020     2020/01/01     CCTLT413        30
2    2020    JANEIRO 2020     2020/01/01     CCVTH2498       31
3    2020    JANEIRO 2020     2020/01/01     XKELB80         27
4    2020    JANEIRO 2020     2020/01/01     XKELI28         29
5    2020    JANEIRO 2020     2020/01/01     XKELN94         24

Table Busy:

ID  Ano        Mes             Data     Operador    Busy
1   2020    JANEIRO 2020    2020/01/01  CCTLT413    6812
2   2020    JANEIRO 2020    2020/01/01  CCTL200     3245
3   2020    JANEIRO 2020    2020/01/01  XKELB80     12305
4   2020    JANEIRO 2020    2020/01/01  XKELI28     7764
5   2020    JANEIRO 2020    2020/01/01  XKELN94     6014

Таблица входа в систему:

ID   Ano       Mes             Data     Operador    Login
1   2020    JANEIRO 2020    2020/01/01  CCTLT413    19475
2   2020    JANEIRO 2020    2020/01/01  CCVTH2498   20209
3   2020    JANEIRO 2020    2020/01/01  XKELB80     21625
4   2020    JANEIRO 2020    2020/01/01  XKELI28     21175
5   2020    JANEIRO 2020    2020/01/01  XKV220      22121

test:

ID     Data         Operador     Atendidas     Busy      Login
1   2020/01/01      CCTLT413        30         6812      19475
2   2020/01/01      CCVTH2498       31         *NULL*    20209
3   2020/01/01      XKELB80         27         12305     21625
4   2020/01/01      XKELI28         29         7764      21175
5   2020/01/01      XKELN94         24         6014      *NULL*

Решение:

Это сработало, мне нужно соединить данные слева, которые я не делал этого .:

SELECT A.Data, A.Operador, A.Atendidas, B.Busy, B.Login
  from Atendidas as A
       left join [Busy] as B on B.Operador = A.Operador
                                and B.Data = A.Data
       left join [Login] as L on L.Operador = A.Operador
                                 and L.Data = A.Data;

1 Ответ

1 голос
/ 16 марта 2020

Присоединение к таблицам с помощью объединения должно сопоставлять данные, из которых вы можете выбирать. При этом предполагается, что в каждой таблице нет дубликатов, которыми можно управлять с помощью SUM и Group Bys.

SELECT * FROM 
(
SELECT Id, Data, Operador, Atendidas, NULL Busy, NULL Login FROM Atendidas
UNION
SELECT Id, Data, Operador, NULL Atendidas, Busy, NULL Login FROM Busy
UNION
SELECT Id, Data, Operador, NULL Atendidas, NULL Busy,  Login FROM Login
)

Вы также можете попробовать следующее, при условии, что идентификаторы одинаковы, но вы можете также присоединяйтесь к колонке Operador. Много предположений в данных.

SELECT a.Id, a.Data, a.Operador, a.Atendidas, b.Busy, l.Login
FROM Atendidas a
INNER JOIN Busy b ON a.Id = b.Id
INNER JOIN Login l ON a.Id = l.Id
...