易截截图软件、单文件、免安装、纯绿色、仅160KB

优化SQL - MS-SQL Server / 基础类

update a set 
a.P = isnull( ( select top 1 P from B b where a.I >= b.SI and a.I <= b.EI order by (b.EI-b.SI) ),'其他') ,
a.C = isnull( ( select top 1 C from B b where a.I >= b.SI and a.I <= b.EI order by (b.EI-b.SI) ),'其他')
from A a


先更新p 再复制c

引用
update a set
a.P = isnull( ( select top 1 P from B b where a.I >= b.SI and a.I <= b.EI order by (b.EI-b.SI) ),'其他') ,
a.C = isnull( ( select top 1 C from B b where a.I >= b.SI and a.I <= b.EI order……

如果需求是求最小值,就没有什么好优化的了,帮顶.

SQL code:
WITH CTE AS(
select a.*,B.C AS BC,B.P AS BP,RN=ROW_NUMBER() OVER(PARTITION BY A.I ORDER BY b.EI-b.SI)
from A a left join B b
on a.I between b.SI and b.EI
)

UPDATE CTE
SET P=ISNULL(BP,'其他'),C=ISNULL(BC,'其他')
WHERE RN=1


????



这个不太懂,等待高人

高人在哪?
 数据库是 Sql2000

感觉最好就是这样了

那有没有 另外的 写法
 这个效率感觉 很低


相关问答:

jsp链接sql2000的疑问?



type Exception report


message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jas ......

Asp+sql server问题 - Web 开发 / ASP

我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例: ......

求一sql语句 - MS-SQL Server / 疑难问题

现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......

求一SQL - MS-SQL Server / 基础类

tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......

mysql区没高手 - MS-SQL Server / 基础类

我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号