标题:请教下各位大大:UPDATE SQL 语句比较日期时间大小时提示关联字段时出错
只看楼主
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
结帖率:86.67%
已结贴  问题点数:20 回复次数:16 
请教下各位大大:UPDATE SQL 语句比较日期时间大小时提示关联字段时出错

程序代码:
CREATE CURSOR 成绩_d (名次 I,完成时间 V(20))
INSERT INTO 成绩_d (完成时间) VALUES ("2019-05-18T00:00:04")
INSERT INTO 成绩_d (完成时间) VALUES ("2019-05-18T00:00:01")
INSERT INTO 成绩_d (完成时间) VALUES ("2019-05-18T00:00:03")
INSERT INTO 成绩_d (完成时间) VALUES ("2019-05-18T00:00:06")
INSERT INTO 成绩_d (完成时间) VALUES ("2019-05-18T00:00:04")
INSERT INTO 成绩_d (完成时间) VALUES ("")

Update 成绩_d Set 名次=1+(Select Count(TmpCursor.完成时间) From 成绩_d As TmpCursor With (Buffering=.T.) Where Ctot(TmpCursor.完成时间) < Ctot(成绩_d.完成时间) And !Empty(TmpCursor.完成时间) ) Where !Empty(完成时间)


要求:比较"完成时间"的大小,"完成时间"相同,名次相同。
请各位大大指教~
搜索更多相关主题的帖子: INSERT VALUES INTO 成绩 时间 
2022-08-06 11:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:14 
1+(Select Count(TmpCursor.完成时间) From 成绩_d As TmpCursor With (Buffering=.T.) Where Ctot(TmpCursor.完成时间) < Ctot(成绩_d.完成时间) And !Empty(TmpCursor.完成时间) )
这句是表达什么?
2022-08-06 11:34
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用吹水佬在2022-8-6 11:34:24的发言:

1+(Select Count(TmpCursor.完成时间) From 成绩_d As TmpCursor With (Buffering=.T.) Where Ctot(TmpCursor.完成时间) < Ctot(成绩_d.完成时间) And !Empty(TmpCursor.完成时间) )
这句是表达什么?


吹版,结果需要显示成这样:
名次    完成时间
1    2019-05-18T00:00:01
2    2019-05-18T00:00:03
3    2019-05-18T00:00:04
3    2019-05-18T00:00:04
5    2019-05-18T00:00:06
2022-08-06 14:30
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
按“完成时间”排一下再依次计“名次”,这个没那么复杂吧
2022-08-06 15:18
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用吹水佬在2022-8-6 15:18:41的发言:

按“完成时间”排一下再依次计“名次”,这个没那么复杂吧


有更简单的方法么...
2022-08-06 15:21
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用shonken在2022-8-6 15:21:04的发言:



有更简单的方法么...

“排队点名”还不够简单,想要多简单的?
2022-08-06 15:46
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
UPDATE SQL 语句比较日期时间大小时提示关联字段时出错

估计是子查询过多运算引致,现增加了一字段,将字段"完成时间"处理为金额数值,问题解决,可以显示同数值同名次,并占位。

Update 成绩_d Set 名次=1+(Select Count(TmpCursor.完成时间) From 成绩_d As TmpCursor With (Buffering=.T.) Where TmpCursor.日期时间值 > 成绩_d.日期时间值 And !Empty(TmpCursor.完成时间) ) Where !Empty(完成时间)
2022-08-06 16:09
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用吹水佬在2022-8-6 15:46:57的发言:


“排队点名”还不够简单,想要多简单的?

名次    完成时间
1    2019-05-18T00:00:01
2    2019-05-18T00:00:03
3    2019-05-18T00:00:04
3    2019-05-18T00:00:04
5    2019-05-18T00:00:06

吹版,同分同名次,并占位,注意看名次,里面没有4
2022-08-06 16:10
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
是不是这样的效果

坚守VFP最后的阵地
2022-08-06 17:23
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用shonken在2022-8-6 15:21:04的发言:



有更简单的方法么...

个人理解方法简单,在于数据处理速度的快慢

坚守VFP最后的阵地
2022-08-06 17:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509726-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.205756 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved