Отображение данных двух временных таблиц в одной таблице - PullRequest
0 голосов
/ 03 июля 2019

У меня есть одна временная таблица, имеющая данные, подобные приведенным ниже, на сервере sql

Таблица 1

**Data** 
ISD-I987330
PSD-I987330
KSD-I987330
JSD-I987330
RSD-I987330
QSD-I987330
QSD-I987359

И еще одна временная таблица, имеющая данные, подобные ниже

Таблица 2

**Data**
BRA-22310
BRA-22319
BRA-22316
BRA-22313
BRA-22317

Я пытаюсь отобразить данные обеих таблиц в одной таблице. Как ниже

enter image description here

Но я получаю данные перекрестных объединений.

Ниже мой запрос

declare @TempResults table
(


    Tickets1    varchar(50),  
    Tickets2    varchar(50)
)

insert into @TempResults 
Select distinct ti.Tickets1,
tr.Tickets2
FROM @Table1 ti,@table2 tr

select * from  @TempResults 

Ответы [ 3 ]

3 голосов
/ 03 июля 2019

Вы не можете получить желаемый результат без каждой таблицы, имеющей отдельный столбец, который поддерживает порядок каждой записи в каждой таблице. В отсутствие этого мы могли бы использовать ROW_NUMBER для генерации заказа, а затем присоединиться:

WITH cte1 AS (
    SELECT Data, ROW_NUMBER() OVER (ORDER BY Data) rn
    FROM Table1
),
cte2 AS (
    SELECT Data, ROW_NUMBER() OVER (ORDER BY Data) rn
    FROM Table2
)

SELECT
    t1.Data,
    t2.Data
FROM cte1 t1
FULL OUTER JOIN cte2 t2
    ON t1.rn = t2.rn;
0 голосов
/ 03 июля 2019

Самое основное решение, но не обязательно лучшее, состоит в объединении таблиц во временную таблицу с разными именами для каждого из столбцов

select * Into @TempResults  From
(
   SELECT  ti.Tickets1 as 'Tickets1',' ' as 'Tickets2'
   FROM @Table1 ti
   UNION
   SELECT ' ' as 'Tickets1',  tr.Tickets2 as 'Tickets2'
   FROM @table2 tr
) T
0 голосов
/ 03 июля 2019

Вы можете присоединиться, используя row_number()

  with cte1 as 
    (select *,row_number() over(order by data) rn
    from table1
    ),
    cte2 as
    (
    select *,row_number() over(order by data) rn
    ) select cte1.data,cte2.data from cte1 left join ct2 on cte1.rn=cte2.rn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...