DB2 SQL 求大大帮忙解决 在线等 谢谢

arsenal1999 2011-07-27 05:56:47
直接上SQL

SELECT * FROM Business_duebill BD where not exists (select 1 from Classify_Record CR where CR.ObjectNo = DB.SerialNO)



其中 DB.SerialNO , CR.ObjectNo 均为索引
...全文
190 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2011-07-28
  • 打赏
  • 举报
回复
检查一下执行 计划,看看索引是否用到

or

SELECT * FROM Business_duebill BD where SerialNO not in (select ObjectNo from Classify_Record )
zhaojianmi1 2011-07-28
  • 打赏
  • 举报
回复
SELECT BD.*
FROM Business_duebill BD
left join Classify_Record CR on CR.ObjectNo = DB.SerialNO
where DB.SerialNO is null

这样快不快
llywuchen 2011-07-28
  • 打赏
  • 举报
回复
路过。。。。。。。。。。
wwwwb 2011-07-28
  • 打赏
  • 举报
回复
检查一下索引情况
WWWWA 2011-07-28
  • 打赏
  • 举报
回复
SELECT bd.* FROM Business_duebill BD
left join Classify_Record CR on CR.ObjectNo = DB.SerialNO
where DB.SerialNO is null

检查一下执行 计划
arsenal1999 2011-07-28
  • 打赏
  • 举报
回复
因为每3个月对Business_duebill做一次数据分析,分析的结果存储在Classify_Record中
arsenal1999 2011-07-28
  • 打赏
  • 举报
回复
我想查在Business_duebill中 不在表Classify_Record中的信息,Business_duebill中有10W Classify_Record应该有200W左右吧
yangxiao_jiang 2011-07-28
  • 打赏
  • 举报
回复
改成left join,你的那个表记录多?
arsenal1999 2011-07-28
  • 打赏
  • 举报
回复
要上班了--!中午再来看看
arsenal1999 2011-07-28
  • 打赏
  • 举报
回复
执行起来特别慢 有没有其他方法代替啊
arsenal1999 2011-07-28
  • 打赏
  • 举报
回复
恩 我也试出来了 谢谢各位的关注!结贴了 万分感谢
zhaojianmi1 2011-07-28
  • 打赏
  • 举报
回复
应该这么写吧
select BD.SerialNo
,BD.CustomerID
,BD.CustomerName
,getBusinessName(BD.BusinessType) as BusinessTypeName
,BD.BusinessSum
,BD.Balance,BD.OperateUserID
,BD.OperateOrgID
,getUserName(BD.OperateUserID) as OperateUserName
,getOrgName(BD.OperateOrgID) as OperateOrgName
from BUSINESS_DUEBILL BD
left join (
select ObjectNo
from CLASSIFY_RECORD CR
where finishdate is not null
and CR.ObjectType='BusinessDueBill'
and AccountMonth='2011/03'
) CR on CR.ObjectNo = BD.SerialNO
where BD.BusinessType like '1%'
and BD.BusinessType not like '1020%'
and BD.PutOutDate < '2011/03/32'
and BD.balance >0
and CR.ObjectNo is null
and BD.OPERATEORGID in (
select BelongOrgID from ORG_BELONG where OrgID = '1000'
)
zhaojianmi1 2011-07-28
  • 打赏
  • 举报
回复
原sql:
select BD.SerialNo
,BD.CustomerID
,BD.CustomerName
,getBusinessName(BD.BusinessType) as BusinessTypeName
,BD.BusinessSum
,BD.Balance,BD.OperateUserID
,BD.OperateOrgID
,getUserName(BD.OperateUserID) as OperateUserName
,getOrgName(BD.OperateOrgID) as OperateOrgName
from BUSINESS_DUEBILL BD
left join (
select ObjectNo
from CLASSIFY_RECORD CR
where finishdate is not null
and CR.ObjectType='BusinessDueBill'
and AccountMonth='2011/03'
) CR on CR.ObjectNo = BD.SerialNO
where BD.BusinessType like '1%'
and BD.BusinessType not like '1020%'
and BD.PutOutDate < '2011/03/32'
and BD.balance >0
and BD.SerialNo is null
and BD.OPERATEORGID in (
select BelongOrgID from ORG_BELONG where OrgID = '1000'
)

试试下面的sql,有结果吗
select BD.SerialNo
,BD.CustomerID
,BD.CustomerName
,getBusinessName(BD.BusinessType) as BusinessTypeName
,BD.BusinessSum
,BD.Balance,BD.OperateUserID
,BD.OperateOrgID
,getUserName(BD.OperateUserID) as OperateUserName
,getOrgName(BD.OperateOrgID) as OperateOrgName
from BUSINESS_DUEBILL BD
where BD.BusinessType like '1%'
and BD.BusinessType not like '1020%'
and BD.PutOutDate < '2011/03/32'
and BD.balance >0
and BD.OPERATEORGID in (
select BelongOrgID from ORG_BELONG where OrgID = '1000'
)
arsenal1999 2011-07-28
  • 打赏
  • 举报
回复
能看看出什么问题了么
arsenal1999 2011-07-28
  • 打赏
  • 举报
回复

select BD.SerialNo,BD.CustomerID,BD.CustomerName,getBusinessName(BD.BusinessType) as BusinessTypeName, BD.BusinessSum,BD.Balance,BD.OperateUserID,BD.OperateOrgID, getUserName(BD.OperateUserID) as OperateUserName, getOrgName(BD.OperateOrgID) as OperateOrgName
from BUSINESS_DUEBILL BD
left join (select ObjectNo from CLASSIFY_RECORD CR where finishdate is not null and CR.ObjectType='BusinessDueBill' and AccountMonth='2011/03') CR on CR.ObjectNo = BD.SerialNO
where (BD.BusinessType like '1%' and BD.BusinessType not like '1020%')
and BD.PutOutDate < '2011/03/32' and BD.balance >0
and BD.SerialNo is null
and BD.OPERATEORGID in (select BelongOrgID from ORG_BELONG where OrgID = '1000')



arsenal1999 2011-07-28
  • 打赏
  • 举报
回复
left join 结果没有数据了
zhaojianmi1 2011-07-27
  • 打赏
  • 举报
回复
这个语句没问题啊
zhaojianmi1 2011-07-27
  • 打赏
  • 举报
回复
你的问题是什么
arsenal1999 2011-07-27
  • 打赏
  • 举报
回复
来人啊 谢谢

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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