2011-08-31 78 views
1

所以我有一个SQL查询,给了我一个整数列表。这里列出:从另一个查询填充表

select distinct 
      re_entity_id 
     from cfo_transaction 
      inner join cfo_tran_quote ON tq_tr_transaction_id = tr_transaction_id 
      inner join cfo_trans_entity_rel on te_tr_transaction_id = tr_transaction_id and te_rv_rel_type_id in (713,715) 
      inner join com_entity on te_co_re_entity_id = re_entity_id 
     where 
      dbo.islmsloan(tq_tran_quote_id) = 1 
      and isnull(re_fictitious_bit,0) = 0 

这给了我一个id的列表,我需要插入另一个表与其他东西。其他表如下所示:

ens_engine_sponsor_id - PK 
ens_rs_sponsor_id - relates to the id from the other query 
ens_use_new_models_bit - should always be 1 for each insert 
ens_start_dt - should be 09/05/2011 for every one 
ens_end_dt - should be null for every one 

我怎么会制定一些自动插入为每个标识的一排在这个新表与给定的标准是什么? (不是这样的SQL好...)

感谢

+0

09/05/2011是5月9日还是9月5日? –

+0

9月5日...好的来电 – slandau

回答

3

您可以添加常数到您的SELECT列表如下。

insert into othertable 
      (ens_rs_sponsor_id, 
      ens_use_new_models_bit, 
      ens_start_dt) 
select distinct re_entity_id, 
       1, 
       '20110905' 
from cfo_transaction 
     inner join cfo_tran_quote 
     ON tq_tr_transaction_id = tr_transaction_id 
     inner join cfo_trans_entity_rel 
     on te_tr_transaction_id = tr_transaction_id 
      and te_rv_rel_type_id in (713, 715) 
     inner join com_entity 
     on te_co_re_entity_id = re_entity_id 
where dbo.islmsloan(tq_tran_quote_id) = 1 
     and isnull(re_fictitious_bit, 0) = 0 

如果使用DISTINCT的理由是消除带来了由加入,你可以考虑使用WHERE EXISTS,而不是重复。

+0

谢谢。这看起来不错 – slandau

1

你没有提到ens_engine_sponsor_id是否是一个标识字段,但假设它是那么你可以做到这一点。

INSERT INTO MyTableName(
     ens_rs_sponsor_id,  
     ens_use_new_models_bit, 
     ens_start_dt, 
     ens_end_dt) 
select distinct 
      re_entity_id, 
      1, 
      '09 May 2011', 
      NULL 
     from cfo_transaction 
      inner join cfo_tran_quote ON tq_tr_transaction_id = tr_transaction_id 
      inner join cfo_trans_entity_rel on te_tr_transaction_id = tr_transaction_id and te_rv_rel_type_id in (713,715) 
      inner join com_entity on te_co_re_entity_id = re_entity_id 
     where 
      dbo.islmsloan(tq_tran_quote_id) = 1 
      and isnull(re_fictitious_bit,0) = 0