Как выбрать пересечение между 2 столбцами из 2 таблиц? - PullRequest
0 голосов
/ 24 мая 2019

a Я хочу выбрать диапазон ОТ, который доступен в обеих таблицах Например: при VAL = 3000 TABLE_A RANGING FROM 3000-9999, TABLE_B RANGING FROM 0-4000 ТАК, ЧТО БУДЕТ ОБРАТИТЬСЯ МЕЖДУ3000 - 4000. Как я могу выполнить эту задачу?

CREATE TABLE TABLE_A(
 A_ID NVARCHAR,
 B_ID SMALLINT,
 A_FROM SMALLINT,
 A_TO SMALLINT)


 CREATE TABLE TABLE_B(
 B_ID SMALLINT,
 VAL SMALLINT,
 B_FROM SMALLINT,
 B_TO SMALLINT)

INSERT INTO TABLE_A(A_ID,B_ID,A_FROM,A_TO)
VALUES (N'A',1,0,3000),
    (N'A',2,3000,9999);

INSERT INTO TABLE_B(B_ID,VAL,B_FROM,B_TO)
VALUES (1,1000,0,2000),
       (1,2000,2000,9999),
       (2,3000,0,4000),
       (2,4000,4000,9999)

SELECT A_ID,
       A.B_ID,
       VAL,
       A_FROM AS 'FROM',
       A_TO AS 'TO'
FROM  TABLE_A AS A
INNER JOIN TABLE_B AS B
ON A.B_ID = B.B_ID;

1 Ответ

0 голосов
/ 24 мая 2019

как то так

SELECT A_ID,
       A.B_ID,
       VAL,
       A_FROM AS 'FROM',
       A_TO AS 'TO' , 
       CASE WHEN A.A_FROM >= B.B_FROM THEN A.A_FROM ELSE B.B_FROM END AS start , 
       CASE WHEN  A.A_TO >= B.B_TO THEN B.B_TO ELSE A.A_TO END AS finish 

FROM  #TABLE_A AS A
INNER JOIN #TABLE_B AS B
ON A.B_ID = B.B_ID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...