一条sql语句优化的问题?

无爱大叔 2012-04-14 11:37:43
select a.*,
(select max(decode(wjsymc, 'DW', wjsyz, null)) from epdm_bgwd_sy b where a.ttachment_journal_id=b.ttachment_journal_id) DW,
(select max(decode(wjsymc, 'ND', wjsyz, null)) from epdm_bgwd_sy b where a.ttachment_journal_id=b.ttachment_journal_id) ND,
(select max(decode(wjsymc, 'KTXM', wjsyz, null)) from epdm_bgwd_sy b where a.ttachment_journal_id=b.ttachment_journal_id) KTXM,
(select max(decode(wjsymc, 'GQ', wjsyz, null)) from epdm_bgwd_sy b where a.ttachment_journal_id=b.ttachment_journal_id) GQ,
(select max(decode(wjsymc, 'SJCXS', wjsyz, null)) from epdm_bgwd_sy b where a.ttachment_journal_id=b.ttachment_journal_id) SJCXS,
(select max(decode(wjsymc, 'SJDW', wjsyz, null)) from epdm_bgwd_sy b where a.ttachment_journal_id=b.ttachment_journal_id) SJDW,
(select max(decode(wjsymc, 'BXR', wjsyz, null)) from epdm_bgwd_sy b where a.ttachment_journal_id=b.ttachment_journal_id) BXR
from CD_ATTACHMENT_JOURNAL a where a.flid='003'

如上sql,CD_ATTACHMENT_JOURNAL表中搜索出的信息要和epdm_bgwd_sy表搜索出行转列的数据合起来,有更好的方法吗?

epdm_bgwd_sy表中有外键ttachment_journal_id,对应CD_ATTACHMENT_JOURNAL表中的主键。
...全文
42 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
无爱大叔 2012-04-14
  • 打赏
  • 举报
回复
呵呵,快了好多倍谢了。明白了,我的思路有问题
ssqtjffcu 2012-04-14
  • 打赏
  • 举报
回复

select a.*, b.dw, b.nd, b.ktxm, b.gq, b.sjcxs, b.sjdw, b.bxr
from CD_ATTACHMENT_JOURNAL a,
(select ttachment_journal_id,
max(decode(wjsymc, 'DW', wjsyz, null)) DW,
max(decode(wjsymc, 'ND', wjsyz, null)) ND,
max(decode(wjsymc, 'KTXM', wjsyz, null)) KTXM,
max(decode(wjsymc, 'GQ', wjsyz, null)) GQ,
max(decode(wjsymc, 'SJCXS', wjsyz, null)) SJCXS,
max(decode(wjsymc, 'SJDW', wjsyz, null)) SJDW,
max(decode(wjsymc, 'BXR', wjsyz, null)) BXR
from epdm_bgwd_sy
group by ttachment_journal_id) b
where a.ttachment_journal_id = b.ttachment_journal_id(+)
and a.flid = '003'

试试看行不行

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧