i'm having multiple insert into..select statement below. if u see, there 1 column value(req_attrname) changing in 3 statements.everything else same including where conditions.
insert statement 1)
insert details(repo_phyid,repo_type,repo_attrname,repo_attrvalue ,req_phyid,req_type,req_attrname,req_attrvalue) select demo.phyid,'complementary item','product management responsible',demo.attr_value, tnr.phyid,'complementary item','**product manager**',demo.attr_value repo_tnr tnr,repo_tnr_attribute demo tnr.phyid=demo.phyid , demo.attr_name='product management responsible' , tnr.type='complementary item' insert statement 2)
insert details(repo_phyid,repo_type,repo_attrname,repo_attrvalue, req_phyid,req_type,req_attrname,req_attrvalue) select demo.phyid,'complementary item','product management responsible',demo.attr_value, tnr.phyid,'complementary item','**quality manager**',demo.attr_value repo_tnr tnr,repo_tnr_attribute demo tnr.phyid=demo.phyid , demo.attr_name='product management responsible' , tnr.type='complementary item' insert statement 3)
insert details(repo_phyid,repo_type,repo_attrname,repo_attrvalue ,req_phyid,req_type,req_attrname,req_attrvalue) select demo.phyid,'complementary item','product management responsible',demo.attr_value ,tnr.phyid,'complementary item',**'depty engineer**',demo.attr_value repo_tnr tnr,repo_tnr_attribute demo tnr.phyid=demo.phyid , demo.attr_name='product management responsible' , tnr.type='complementary item' what i'm trying here is, if select returns me 20 rows, first have insert 20 rows product manager value req_attrname have insert same 20 rows quality manager , again deputy engineer . accomplish i'm using 3 insert statement. i'm having 15 20 insert statement. there way can in single insert statement? me decrease code , increase readbility. kindly provide alternate solution.
since req_attrname constants, can query of them dual , cross join result on original query each row query matches each req_attrname:
insert details (repo_phyid, repo_type, repo_attrname, repo_attrvalue, req_phyid, req_type, req_attrname, req_attrvalue) select demo.phyid, 'complementary item', 'product management responsible', demo.attr_value, tnr.phyid, 'complementary item', req_attrname, demo.attr_value repo_tnr tnr join repo_tnr_tttribute demo on tnr.phyid = demo.phyid cross join (select '**product manager**' req_attrname dual union select '**quality manager**' req_attrname dual union select '**depty engineer**' req_attrname dual) t demo.attr_name = 'product management responsible' , tnr.type = 'complementary item'
Comments
Post a Comment