Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

29

主题
1#
发表于 2013-1-24 11:17:00 | 查看: 3600| 回复: 4
实际中的一个例子我稍微简写一点

from ctl ,ctlgd,s
where ctl.x(+)=ctlgd.x
and ctlgd.y=s.y(+)

我想给它写成right和left的格式,如果是单独的
from ctl right join ctlgd on ctl.x=ctlgd.x

from ctlgd left join s on ctlgd.y=s.y这都没问题,合在一起我写成了

from ctl rigjt jion (ctlgd left join s on ctlgd.y=s.y)on ctl.x=ctlgd.x但是结果返回发现少了一些数据
求大师们给个正常的写法学习下

加别名的我会,有没有不加别名直接连着写下来的
2#
发表于 2013-1-24 11:33:01
我把原始语句也贴上
原语句中where
  1. WHERE S.salesrep_id(+) = CTLGD.cust_trx_line_salesrep_id
  2.    AND AVT.vat_tax_id(+) = CTL.vat_tax_id
  3.    AND RR.rule_id(+) = CTL.accounting_rule_id
  4.    AND MUOM.uom_code(+) = CTL.uom_code
  5.    AND L2.lookup_code(+) = CTL.line_type
  6.    AND CT.exchange_rate_type = GLCT.conversion_type(+)
  7.    AND L2.lookup_type(+) = 'STD_LINE_TYPE'
  8.    AND AVT.org_id(+)=CTL.org_id
  9.    AND CT.doc_sequence_id = FD.doc_sequence_id(+)
  10.    AND CTLGD.org_id = CTL.org_id(+)
  11.    AND CTL.org_id =CTL2.org_id(+)




  12. And L6.lookup_code = 'DETAIL_LINE'
  13.    AND L6.lookup_type = 'VIEW_ACCOUNTING'
  14.    AND L5.lookup_code = 'LINE'
  15.    AND L5.lookup_type = 'VIEW_ACCOUNTING'
  16.    AND L3.lookup_type = decode(ctlgd.collected_tax_ccid,
  17.                                null,
  18.                                'AUTOGL_TYPE',
  19.                                'DISTRIBUTION_SOURCE_TYPE')
  20.    AND L3.lookup_code = decode(ctlgd.collected_tax_ccid,
  21.                                null,
  22.                                nvl(CTLGD.account_class, 'REV'),
  23.                                'DEFERRED_TAX')
  24.    AND CT.org_id =decode(S.salesrep_id, null,CT.org_id,S.org_id)
  25.    AND L4.lookup_code = decode(ctlgd.posting_control_id, -3, 'N', 'Y')
  26.    AND L4.lookup_type = 'YES/NO'
  27.    AND L1.lookup_code = CTT.type
  28.    AND L1.lookup_type = 'INV/CM'
  29.    AND CT.cust_trx_type_id = CTT.cust_trx_type_id
  30.    AND CT.org_id =CTT.org_id
  31.    AND CT.bill_to_site_use_id = SU.site_use_id
  32.    AND CT.bill_to_customer_id = CUST_ACCT.cust_account_id
  33.    AND CUST_ACCT.party_id = party.party_id
  34.    AND CT.batch_source_id = BS.batch_source_id
  35.    AND CT.org_id = BS.org_id
  36.    AND CTL.link_to_cust_trx_line_id = CTL2.customer_trx_line_id(+)
  37.    AND CTLGD.customer_trx_line_id = CTL.customer_trx_line_id(+)
  38.    AND CTLGD.account_set_flag = 'N'
  39.    AND CT.customer_trx_id = CTLGD.customer_trx_id
  40.    AND CT.org_id = CTLGD.org_id;

复制代码
修改过后
  1. From ra_customer_trx_all CT
  2. left join fnd_document_sequences FD on CT.doc_sequence_id =
  3.                                          FD.doc_sequence_id
  4. left join gl_daily_conversion_types GLCT on CT.exchange_rate_type =
  5.                                               GLCT.conversion_type,
  6. ra_customer_trx_lines_all CTL
  7. left join ra_customer_trx_lines_all CTL2 on CTL.link_to_cust_trx_line_id =
  8.                                              CTL2.customer_trx_line_id
  9.                                          And CTL.org_id = CTL2.org_id
  10. Left join ar_vat_tax_all AVT on AVT.vat_tax_id =CTL.vat_tax_id
  11.                                          AND AVT.org_id = ctl.org_id
  12. Left join mtl_units_of_measure MUOM on MUOM.uom_code = CTL.uom_code
  13. Left join ra_rules RR on RR.rule_id =CTL.accounting_rule_id
  14. Left join ar_lookups L2 on L2.lookup_code = CTL.line_type       
  15. Right join
  16. ra_cust_trx_line_gl_dist_all CTLGD  on CTLGD.org_id = CTL.org_id and CTLGD.customer_trx_line_id =CTL.customer_trx_line_id
  17. left join ra_salesreps_all S on S.salesrep_id = CTLGD.cust_trx_line_salesrep_id,
  18. ra_cust_trx_types_all CTT,
  19. hz_cust_site_uses_all SU,
  20. hz_cust_accounts CUST_ACCT,
  21. hz_parties PARTY,
  22. ra_batch_sources_all BS,
  23. ar_lookups L6, ar_lookups L5,
  24. ar_lookups L1, ar_lookups L3,
  25. ar_lookups L4

  26. where L6.lookup_code = 'DETAIL_LINE'
  27.    AND L6.lookup_type = 'VIEW_ACCOUNTING'
  28.    AND L5.lookup_code = 'LINE'
  29.    AND L5.lookup_type = 'VIEW_ACCOUNTING'
  30.    AND L3.lookup_type = decode(ctlgd.collected_tax_ccid,
  31.                                null,
  32.                                'AUTOGL_TYPE',
  33.                                'DISTRIBUTION_SOURCE_TYPE')
  34.    AND L3.lookup_code = decode(ctlgd.collected_tax_ccid,
  35.                                null,
  36.                                nvl(CTLGD.account_class, 'REV'),
  37.                                'DEFERRED_TAX')
  38.    AND CT.org_id = decode(S.salesrep_id, null, CT.org_id, S.org_id)
  39.    AND L4.lookup_code = decode(ctlgd.posting_control_id, -3, 'N', 'Y')
  40.    AND L4.lookup_type = 'YES/NO'
  41.    AND L1.lookup_code = CTT.type
  42.    AND L1.lookup_type = 'INV/CM'
  43.    AND CT.cust_trx_type_id = CTT.cust_trx_type_id
  44.    AND CT.org_id = CTT.org_id
  45.    AND CT.bill_to_site_use_id = SU.site_use_id
  46.    AND CT.bill_to_customer_id = CUST_ACCT.cust_account_id
  47.    AND CUST_ACCT.party_id = party.party_id
  48.    AND CT.batch_source_id = BS.batch_source_id
  49.    AND CT.org_id = BS.org_id
  50.    AND CTL.org_id = CTL2.org_id
  51.    AND CT.customer_trx_id = CTLGD.customer_trx_id
  52.    AND CT.org_id = CTLGD.org_id
  53.    AND L2.lookup_type= 'STD_LINE_TYPE'
复制代码

回复 只看该作者 道具 举报

3#
发表于 2013-1-25 08:27:43
有高手么,求解

回复 只看该作者 道具 举报

4#
发表于 2013-1-25 19:17:20
你怎么就和 外连接耗上呢? 你今后是想做开发或者SQL大师?

回复 只看该作者 道具 举报

5#
发表于 2013-1-25 21:30:06
Maclean Liu(刘相兵 发表于 2013-1-25 19:17
你怎么就和 外连接耗上呢? 你今后是想做开发或者SQL大师?

木有..就是最近sql问题比较多,数据库这面没大问题就让我帮着开发改语句...awr等待事件里经常出现低效的sql

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 06:21 , Processed in 0.050054 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569