在 Mssql 中加入不相关的表
Join Unrelated tables in Mssql
我的任务是重新创建从 Oracle 11g 数据库到 MSSQL 2008 数据库的视图。我被困在重新创建这个视图中:在 oracle 中是这样的:
CREATE OR REPLACE VIEW TRANSACTION_VIEW
(FCT_TM_SOL_ID, FCT_TM_ACID, FCT_TM_RCRE_USER_ID, FCT_TM_TRAN_TYPE,
FCT_TM_TRAN_SUB_TYPE,DA_SCHM_CODE,DC_GENDER,DC_CUST_TYPE_CODE,DA_ACCT_MGR_ID
)
AS
SELECT FCT_TM_SOL_ID,FCT_TM_ACID
,FCT_TM_RCRE_USER_ID,FCT_TM_TRAN_TYPE,FCT_TM_TRAN_SUB_TYPE,dim_account.DA_SC
HM_CODE,
DC_GENDER,DC_CUST_TYPE_CODE,DA_ACCT_MGR_ID
FROM FACT_TRANSACTION ,dim_account,dim_customer
WHERE FCT_TM_ACID = dim_account.DA_ACID(+)
and dim_account.DA_CUST_ID = dim_customer.DC_CUST_ID(+)
and dim_account.DA_ACCT_OWNERSHIP ='C';
FACT_TRANSACTION
和 dim_customer
之间没有直接关系,所以我在 MSSQL 中重新创建视图时卡住了。到目前为止我有:
CREATE VIEW TRANSACTION_VIEW
(FCT_TM_SOL_ID, FCT_TM_ACID, FCT_TM_RCRE_USER_ID, FCT_TM_TRAN_TYPE,
FCT_TM_TRAN_SUB_TYPE,DA_SCHM_CODE,DC_GENDER,DC_CUST_TYPE_CODE,DA_ACCT_MGR_ID
)
AS
SELECT t1.FCT_TM_SOL_ID,t1.FCT_TM_ACID
,t1.FCT_TM_RCRE_USER_ID,t1.FCT_TM_TRAN_TYPE,t1.FCT_TM_TRAN_SUB_TYPE,t2.DA_SCHM_CODE,
t3.DC_GENDER,t3.DC_CUST_TYPE_CODE,t3.DA_ACCT_MGR_ID
FROM FACT_TRANSACTION t1
left join dim_account t2 on t1.FCT_TM_ACID = t2.DA_ACID
left join ---STUCK HERE dim_customer t3
where t2.DA_ACCT_OWNERSHIP ='C';
请帮助如何加入不相关的实体。
虽然 FACT_TRANSACTION
和 dim_customer
之间没有直接关系,但它们在 dim_account
中确实有共同点(尽管领域不同)。因此,您可以在 dim_account
和 dim_customer
之间进行第二个左连接:
SELECT t1.FCT_TM_SOL_ID,t1.FCT_TM_ACID, t1.FCT_TM_RCRE_USER_ID,t1.FCT_TM_TRAN_TYPE,t1.FCT_TM_TRAN_SUB_TYPE,t2.DA_SCHM_CODE,
t3.DC_GENDER,t3.DC_CUST_TYPE_CODE,t3.DA_ACCT_MGR_ID
FROM FACT_TRANSACTION t1
left join dim_account t2 on t1.FCT_TM_ACID = t2.DA_ACID
left join dim_customer t3 on t2.DA_CUST_ID = t3.DC_CUST_ID
where t2.DA_ACCT_OWNERSHIP ='C';
我的任务是重新创建从 Oracle 11g 数据库到 MSSQL 2008 数据库的视图。我被困在重新创建这个视图中:在 oracle 中是这样的:
CREATE OR REPLACE VIEW TRANSACTION_VIEW
(FCT_TM_SOL_ID, FCT_TM_ACID, FCT_TM_RCRE_USER_ID, FCT_TM_TRAN_TYPE,
FCT_TM_TRAN_SUB_TYPE,DA_SCHM_CODE,DC_GENDER,DC_CUST_TYPE_CODE,DA_ACCT_MGR_ID
)
AS
SELECT FCT_TM_SOL_ID,FCT_TM_ACID
,FCT_TM_RCRE_USER_ID,FCT_TM_TRAN_TYPE,FCT_TM_TRAN_SUB_TYPE,dim_account.DA_SC
HM_CODE,
DC_GENDER,DC_CUST_TYPE_CODE,DA_ACCT_MGR_ID
FROM FACT_TRANSACTION ,dim_account,dim_customer
WHERE FCT_TM_ACID = dim_account.DA_ACID(+)
and dim_account.DA_CUST_ID = dim_customer.DC_CUST_ID(+)
and dim_account.DA_ACCT_OWNERSHIP ='C';
FACT_TRANSACTION
和 dim_customer
之间没有直接关系,所以我在 MSSQL 中重新创建视图时卡住了。到目前为止我有:
CREATE VIEW TRANSACTION_VIEW
(FCT_TM_SOL_ID, FCT_TM_ACID, FCT_TM_RCRE_USER_ID, FCT_TM_TRAN_TYPE,
FCT_TM_TRAN_SUB_TYPE,DA_SCHM_CODE,DC_GENDER,DC_CUST_TYPE_CODE,DA_ACCT_MGR_ID
)
AS
SELECT t1.FCT_TM_SOL_ID,t1.FCT_TM_ACID
,t1.FCT_TM_RCRE_USER_ID,t1.FCT_TM_TRAN_TYPE,t1.FCT_TM_TRAN_SUB_TYPE,t2.DA_SCHM_CODE,
t3.DC_GENDER,t3.DC_CUST_TYPE_CODE,t3.DA_ACCT_MGR_ID
FROM FACT_TRANSACTION t1
left join dim_account t2 on t1.FCT_TM_ACID = t2.DA_ACID
left join ---STUCK HERE dim_customer t3
where t2.DA_ACCT_OWNERSHIP ='C';
请帮助如何加入不相关的实体。
虽然 FACT_TRANSACTION
和 dim_customer
之间没有直接关系,但它们在 dim_account
中确实有共同点(尽管领域不同)。因此,您可以在 dim_account
和 dim_customer
之间进行第二个左连接:
SELECT t1.FCT_TM_SOL_ID,t1.FCT_TM_ACID, t1.FCT_TM_RCRE_USER_ID,t1.FCT_TM_TRAN_TYPE,t1.FCT_TM_TRAN_SUB_TYPE,t2.DA_SCHM_CODE,
t3.DC_GENDER,t3.DC_CUST_TYPE_CODE,t3.DA_ACCT_MGR_ID
FROM FACT_TRANSACTION t1
left join dim_account t2 on t1.FCT_TM_ACID = t2.DA_ACID
left join dim_customer t3 on t2.DA_CUST_ID = t3.DC_CUST_ID
where t2.DA_ACCT_OWNERSHIP ='C';