易截截图软件、单文件、免安装、纯绿色、仅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 ......

请教SQL语句查询问题? - MS-SQL Server / 基础类

我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间  
  Id value state dattime  
  101 32.3 0 ......

SQL语句问题 - MS-SQL Server / 疑难问题

请教高手:
 以下是数据库中的三条记录,英文为字段名称  
  id planname TaskBeginTime Status
329 2010年03 ......

关于Sql的问题 - .NET技术 / ASP.NET

将一个查询语句赋给一个变量,如下:
DECLARE @STR NVARCHAR(MAX)
SET @STR='SELECT * from SALE_PROD'
怎么样才能执行它呢?
请高手,仁兄,侠姐帮帮忙啊


多谢,可以啦,高手啊

直接执行就行了

exec ......

求一sql语句 - 其他数据库开发 / MySQL/Postgresql

如何从仪表中将根据日期查询的结果按最新时间(像新闻那样)的方式排列出来
(不要高估你的汉语表达能力或者我的汉语理解能力)
  建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号