银行内数据问题

laester 2010-08-24 01:05:03
现在这个项目中有个张表 hj(zh as 帐号,cq as 存期,ye as 金额,jyrq as 交易日期,khrq as 开户日期,xz as 储种,dwbh as 编号, zhzt as 帐号状态)
要求:
求出在某个支行中所有定期帐号,的存款时间(存在支行的实际时间,比如定期存1年实际只存了3个月就取走了。)。
公式为:
(ye/cq)*(jyrq-khrq)

我现在写了个语句:
select cdbl(ye)/cdbl(cq)*cdbl((select (month(jyrq)-month(khrq)+1)from hj where zhzt='清户'and zh='1111111111111111111111')) from(SELECT * from hj where zh in(select zh from hj where xz='整整'and dwbh like '001*'group by zh having count(*)>1)) where zh='1111111111111111111111'

这个可以查询出帐号为11111111111111的帐号实际存款月数,
但小弟我进行循环查询,某个支行的数据就会出现死机状态。请各位高手优化下,怎么查询才能最快的进行下去
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
laester 2010-08-25
  • 打赏
  • 举报
回复
duanzhi1984,谢谢你的回复。你的语句我也写过。
数据是这样的:一个帐号如果清户。那么在HJ表里面将体现2次,第一次是开户的时候,第二次是清户的时候,按照你的语句,将对开户和清户都进行计算。但清户时YE字段为"0"所以根本没必要计算。现在是清户的JYRQ才是我要用到计算中的
cdbl(ye)/cdbl(cq)*cdbl((month(jyrq)-month(khrq)+1))
JYRQ .
所以我才在我写的那个语句
select cdbl(ye)/cdbl(cq)*cdbl((select (month(jyrq)-month(khrq)+1)from hj where zhzt='清户'and zh='1111111111111111111111')) from(SELECT * from hj where zh in(select zh from hj where xz='整整'and dwbh like '001*'group by zh having count(*)>1)) where zh='1111111111111111111111'
加了条件
laester 2010-08-25
  • 打赏
  • 举报
回复
现在的代码是:
SELECT lxh1, xm1, zh, ye1, jyrq1, khrq1, datediff("m",khrq1,jyrq1) AS yf1, cq1, format(cdbl(cdbl(ye1)/cdbl(cq1)*(yf1)),"0.00") AS jf
FROM
(SELECT min(lxh) as lxh1,min(xm) as xm1,zh,max(ye) as ye1,max(format(jyrq,"yyyy-mm-dd")) as jyrq1,min(format(khrq,"yyyy-mm-dd")) as khrq1,max(cq) as cq1 from hj
where cq<>'0' and zhzt in('正常','清户','自转')
group by zh
having count(*)>1
)

可以实现,但有办法优化吗?
duanzhi1984 2010-08-24
  • 打赏
  • 举报
回复
cdbl 是什么,是你写的函数吗。。。



select cdbl(ye)/cdbl(cq)*cdbl((month(jyrq)-month(khrq)+1))
from hj where zh in(
select zh from hj where xz='整整'and dwbh like '001*' group by zh having count(*)>1)


以上试试看
ziyouluoye 2010-08-24
  • 打赏
  • 举报
回复
天呀 你可以分开一条条的写
查询出来的数据可以给变量用在下一行中
这样的话应该好些
Q315054403 2010-08-24
  • 打赏
  • 举报
回复
金额/存期。。。很抽象,汗
既然一行都查出来了,查N行就把条件改下喽
hao1hao2hao3 2010-08-24
  • 打赏
  • 举报
回复
数据量太大了?

另外,cdbl是自己封装的函数吗?这里能不能优化一下?

感觉有点乱,应该可以写成两个hj表进行关联的查询吧!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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