SQL Server: дизайн таблицы сопоставления - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть 2 таблицы, Таблица A и Таблица B, которые имеют следующую структуру:

Table A:

и

Table B

Между таблицами, обозначенными Product_group в Table A и <campaign_month,campaign> в Table B, существует связь 1-1.

Например, ‘ 1808 Product - Group 3a’ = <’201808’,‘group_3a’>.

Я пытаюсь создать таблицу сопоставления, используя таблицы A и B, которая должна содержать 3 столбца, а именно: <Product_group, campaign_month, campaign>.

Поскольку яЯ не могу объединить две таблицы, я ищу другие способы создания таблицы сопоставления.

Может кто-нибудь направить меня в правильном направлении?

1 Ответ

0 голосов
/ 20 ноября 2018

Обратите внимание на следующее: я объединяю две таблицы на основе того, содержится ли строка в столбце кампании (без _) в product_group.

create table tablea (product_group varchar (50));

create table tableb(id_c int,campaign_month int, campaign varchar(50));

insert into tablea values('1808 Product - Group 3a')
insert into tablea values('1808 Product - Group 3b')
insert into tablea values('1808 Product - Group 1c - Test1')
insert into tablea values('1808 Product - Group 3s -1')
insert into tablea values('1808 Product - Group 4d')

insert into tablea values('1808 Product - Group 3a')
insert into tablea values('1808 Product - Group 3b')
insert into tablea values('1808 Product - Group 1c - Test1')
insert into tablea values('1808 Product - Group 3s -1')
insert into tablea values('1808 Product - Group 4d')

   select a.product_group, b.id_c,b.campaign_month,b.campaign
     from tablea a
left join tableb b
      on replace(a.product_group,' -',' ') like '%'+replace(b.campaign,'_',' ')+'%' 

Демонстрационная ссылка https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=b1c19bc020e3a8a313ce78dd387f7c43

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...