0
我需要创建一个将生成三个表的sql语句。一个SQL语句产生三个表
我有,如果我单独运行,我可以产生三个表的单个SQL代码: 表1
select t.TRADE_ID, t.TRADE_VERSION, t.TRADE_SOURCE_SYSTEM, tl.LINK_PARENT_ID,
tl.LINK_PARENT_VERSION, tc.CHARGE_AMOUNT, tc.CHARGE_SCOPE FROM EQ_MO_TRADE (NOLOCK) t, EQ_MO_TRADE_CHARGE (NOLOCK) tc, EQ_MO_TRADE_LINKAGE (NOLOCK) tl
WHERE t.TRADE_OID = tl.TRADE_OID
AND t.TRADE_OID = tc.TRADE_OID
AND tl.LINK_TYPE = 'Allocation'
AND tc.CHARGE_NAME = 'Commission'
AND tc.CHARGE_AMOUNT != 0.0
表2
select aD.ALLOCATION_ID, aD.ALLOCATION_VERSION, aD.ALLOCATION_SOURCE_SYSTEM,
al.LINK_PARENT_ID, al.LINK_PARENT_VERSION, ac.CHARGE_AMOUNT FROM EQ_MO_ALLOCATION_DETAIL aD, EQ_MO_ALLOCATION_DETAIL_CHARGE ac, EQ_MO_ALLOCATION_INSTR_LINKAGE al, EQ_MO_ALLOCATION_INSTR aI
WHERE aD.ALLOCATION_DETAIL_OID = ac.ALLOCATION_DETAIL_OID
AND aD.ALLOCATION_INSTR_ID = aI.ALLOCATION_INSTR_ID
AND aI.ALLOCATION_INSTR_OID = al.ALLOCATION_INSTR_OID
AND ac.CHARGE_NAME = 'Commission'
AND ac.CHARGE_AMOUNT != 0.0
AND ac.CHARGE_AMOUNT != -1.0
and aD.ALLOCATION_ID in
(select tl.LINK_PARENT_ID FROM EQ_MO_TRADE t, EQ_MO_TRADE_CHARGE tc, EQ_MO_TRADE_LINKAGE tl
where t.TRADE_OID = tl.TRADE_OID
AND t.TRADE_OID = tc.TRADE_OID
AND tl.LINK_TYPE = 'Allocation'
AND tc.CHARGE_NAME = 'Commission'
AND tc.CHARGE_AMOUNT != 0.0)
所以表2平它的输入从列表3从表2中列出它的输入。
如何重新分解这些SQL语句以删除代码重复并轻松地将p将列值分配到下一个表格。
是否可以将这些SQL转换为一个?
编辑:Netezza公司DB查询通过DBVisualizer中
创建两个视图? – deerchao
将它添加到**标签** - 这是阐明你使用的数据库引擎之类的东西的地方:-) –
@deerchao,我很新的SQL我怎么能创建这些视图,从列传递值一个到另一个像变量 – Will