subject_17298.htm
来自「一些关于vc的问答」· HTM 代码 · 共 123 行
HTM
123 行
<p>
序号:17298 发表者:beginner_bj 发表日期:2002-10-10 10:43:37
<br>主题:一个A(n)减A(n-1)的问题
<br>内容: 一个A(n)减A(n-1)的问题:<BR>field1如下,其中的数据单调上升<BR>4<BR>33<BR>56<BR>122<BR>321<BR>322<BR>……<BR><BR>欲生成如下结果<BR>29 即33-4<BR>23 即56-33<BR>66 即122-56<BR>99<BR>1<BR>……<BR><BR>请教,在SQL SERVER2000下该如何做?谢谢<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:david (小鱼儿) 回复日期:2002-10-10 15:35:08
<br>内容:先将A倒续排<BR>select num from a order num desc<BR>然后用游标循环递减,用一个临时表存储减的数<BR>然后将临时表排序就可以了。<BR>很简单的。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:beginner_bj 回复日期:2002-10-10 21:01:26
<br>内容:谢了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:david (小鱼儿) 回复日期:2002-10-11 11:14:04
<br>内容:对吗?对请给分吧:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:beginner_bj 回复日期:2002-10-11 23:40:03
<br>内容:怎么给分?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Hpp 回复日期:2002-10-16 21:26:11
<br>内容:什么游标,一句就够了:<BR>select a.field1-(select top 1 field1 from tablename where field1<a.field1 order by field1 desc) from tablename a
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:david (小鱼儿) 回复日期:2002-10-17 16:30:54
<br>内容:Hpp:看上去挺对,牛!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Hpp 回复日期:2002-10-18 10:42:35
<br>内容:david (小鱼儿):开玩笑,别介意!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:david (小鱼儿) 回复日期:2002-10-18 15:33:07
<br>内容:不是。我在懊恼自己怎么没想到。<BR>你的写法比我好,看来我要多开拓思维呀。<BR>HPP:我羡慕你呢。真的。<BR>以后多多回贴,帮助别人的同时,其实也同样提高了自己。<BR><BR>好好学习,天天up
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:david (小鱼儿) 回复日期:2002-10-18 15:34:29
<br>内容:这个贴,让我学到了不少,谢谢hpp.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Hpp 回复日期:2002-10-18 20:05:38
<br>内容:小鱼儿过谦了!<BR>不过我认为:<BR> 1.一个好的SQLSERVER开发者,他不到万不得已,不会用游标的。<BR> 2.一个好的SQLSERVER开发者,他不会出现这种数据表的。这种表至少有一个primary key 或 unique字段<BR> 3.我的语句,针对他提供的数据可以,但如果有重复数据,就不正确了,如果没有unique字段。只能用这种方法:<BR> select identity(int,1,1),field1 into #temp from table order by field1<BR> select field1-isnull((select field1 from #temp where id=a.id-1),0) from #temp<BR><BR> --drop #temp
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Hpp 回复日期:2002-10-18 20:07:36
<br>内容:上面少了个AS ID<BR>select identity(int,1,1) as id,field1 into #temp from table order by field1<BR> select field1-isnull((select field1 from #temp where id=a.id-1),0) from #temp<BR><BR> --drop #temp
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Hpp 回复日期:2002-10-18 20:22:39
<br>内容:上面少了个AS ID<BR>select identity(int,1,1) as id,field1 into #temp from table order by field1<BR> select field1-isnull((select field1 from #temp where id=a.id-1),0) from #temp a<BR><BR> --drop #temp
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Hpp 回复日期:2002-10-18 20:47:56
<br>内容:这论坛水平成问题。<BR>我今晚有空看了那些专家分比较高的得分记录!<BR>大牙都快笑掉了。以后不来了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:beginner_bj 回复日期:2002-10-19 00:53:54
<br>内容:我不知道如何把分分给你们?Hpp ,david 以后还请多多指教。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:beginner_bj 回复日期:2002-10-19 01:09:41
<br>内容:两位帮我看看下面最后一句group by为何出错?<BR>select IDENTITY(int,1,1) as id,clientusername,logtime into #tempR from webproxylog <BR>order by clientusername,logtime <BR><BR>--select *from #tempR<BR><BR>select sum(diff) from <BR> (select a.clientusername, datediff(second,a.logtime,b.logtime) as diff from #tempR a,#tempR b<BR> where a.logtime<b.logtime and b.id-a.id=1 and a.clientusername=b.clientusername) <BR>group by clientusername
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:beginner_bj 回复日期:2002-10-19 01:13:38
<br>内容:发的帖子怎么不能编辑?我一贴出来,就发现错误了。我是新手,不好意思。<BR>select clientusername,sum(diff) from <BR>(select a.clientusername, datediff(second,a.logtime,b.logtime) as diff from #tempR a,#tempR b<BR> where a.logtime<b.logtime and b.id-a.id=1 and a.clientusername=b.clientusername) <BR>group by clientusername
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Hpp 回复日期:2002-10-19 08:20:04
<br>内容:select clientusername,sum(diff) from <BR>(select a.clientusername, datediff(second,a.logtime,b.logtime) as diff from #tempR a,#tempR b<BR> where a.logtime<b.logtime and b.id-a.id=1 and a.clientusername=b.clientusername) C--给子查询加个别名<BR>group by clientusername <BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:david (小鱼儿) 回复日期:2002-10-21 09:03:30
<br>内容:Hpp:这论坛水平成问题。<BR>我今晚有空看了那些专家分比较高的得分记录!<BR>大牙都快笑掉了。以后不来了。 <BR><BR>其实多多回答几个问题真的是益人益己,<BR>我觉得你SQL水平不错,<BR>真诚的希望你能多多来论坛呀!<BR>也许我们水平低,但如果大家多多交流,都会有提高的。<BR>谢谢你。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:子龙 回复日期:2002-10-22 13:27:40
<br>内容:to hpp:<BR><BR><BR> 1.一个好的SQLSERVER开发者,他不到万不得已,不会用游标的。<BR>>>>>>>>>>>>> 为什么?不懂,用游标将会是很快的一种方法。你比较过你的做法和用Cursor之间的速度吗?<BR> 2.一个好的SQLSERVER开发者,他不会出现这种数据表的。这种表至少有一个primary key 或 unique字段<BR>>>>>>>>>>>> 提问者又没有说没有 PK<BR> 3.我的语句,针对他提供的数据可以,但如果有重复数据,就不正确了,如果没有unique字段。只能用这种方法:<BR> select identity(int,1,1),field1 into #temp from table order by field1<BR> select field1-isnull((select field1 from #temp where id=a.id-1),0) from #temp<BR>>>>>>>>>>> 错的。<BR><BR>还有你以前所说的:<BR>select a.field1-(select top 1 field1 from tablename where field1<a.field1 order by field1 desc) from tablename a <BR>也是错的。<BR>为什么是错的,你自己看看执行结果就知道了。<BR><BR>自己这种水平还好意思说别人。别扮大爷了。<BR><BR><BR>附:<BR>测试数据<BR><BR>create table ta (field1 int primary key);<BR>insert into ta values(1);<BR>insert into ta values(11);<BR>insert into ta values(33);<BR>insert into ta values(41);<BR>insert into ta values(81);<BR>insert into ta values(181);<BR>insert into ta values(281);<BR>insert into ta values(381);<BR>insert into ta values(441);<BR><BR>错误方法一:<BR>select a.field1-(select top 1 field1 from ta where field1<a.field1 order by field1 desc) from ta a ;<BR><BR>错误方法二:<BR>select identity(int,1,1) as id,field1 into #temp from ta order by field1;<BR> select field1-isnull((select field1 from #temp where id=a.id-1),0) from #temp a;<BR>drop table #temp;<BR><BR>另:关于你的错误方法一,你自己看看执行效率。<BR><BR>最后,本来想骂你,但我还是忍住了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:david (小鱼儿) 回复日期:2002-10-22 13:38:29
<br>内容:看来还是我不对。<BR>select identity(int,1,1) as id,field1 into #temp from ta order by field1;<BR> select field1-isnull((select field1 from #temp where id=a.id-1),0) from #temp a;<BR><BR>他这个也没错呀,是效率太低的问题吗?<BR><BR>2002-10-22 14:28:30
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?