所以我有一个SQL查询,它给出了一个int列表。在此列出:
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
我如何使用给定的条件为这个新表中的每个Id自动插入一些行? (SQL不太好......)
由于
答案 0 :(得分: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
代替。
答案 1 :(得分: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