Создать хранимую процедуру для перемещения данных из stage_table в fact_table - PullRequest
0 голосов
/ 20 февраля 2020

Создать хранимую процедуру для перемещения данных из stage_table в fact_table. Имя схемы будет заполняться на основе кода продукта и кода агентства. Stage_table должен искать dim_table на основе кода продукта и кода агентства. когда поиск не совпадает, имя_схемы должно быть записано как N / A.

Запрос для записи на SQL Сервер. Я попытался написать запрос ниже, но получение подзапроса вернуло более 1 значения ошибки. Буду признателен за любую помощь.

Stage_table

Policy holder.  Phone number    
------------------------------
John.            456
Jack.            789
Jaxon.           101
Joshna.          121
Jenifer.         214
Joy.             453
Jordan.          343


Product_code.     Agency_code
-----------------------------
AAA.              PP
SSS.              SS11
SSS.              AA11
VVV.              AA11
VVV.              RR
QQQ.              QQ11
VVV.              VV11

Dim_lookup

Product_code  Agency_code.  Scheme_name
---------------------------------------
AAA.           AA11.        A
QQQ.           QQ11.        Q
VVV.           VV11.        V
SSS.           SS11.        S

--- запрос для stage_table для поиска dim_lookup

UPDATE stage_table set stage_table.scheme_name = ( 
case 
when stage_table.product_code = dim_lookup.product_code and stage_table.agency_code=dim_lookup.agency_code 
then dim_lookup.scheme_name

Else 'NA'

END from dim_lookup)

--- запрос на создание хранимой процедуры для перемещения данных в fact_table

Create procedure Move_table
As
Begin
    Insert into fact_table
    Select*from stage_table
End

Exec Move_table

1 Ответ

0 голосов
/ 20 февраля 2020

Я думаю, что проблема в части, в которой вы назначаете схему.

Вместо этого попробуйте выполнить обновление с помощью соединения:

UPDATE a
set a.scheme_name = case when a.product_code = b.product_code and b.agency_code=b.agency_code then b.scheme_name Else 'NA' end

from stage_table as a left join dim_lookup as b
on a.product_code = b.product_code and b.agency_code=b.agency_code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...