以文本方式查看主题
- Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2)
---- [求助]日期列不同值的集合 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=154107)
|
-- 作者:天一生水
-- 发布时间:2020/9/3 20:35:00
-- [求助]日期列不同值的集合
老师好!
获取[日期]列中不同的日期,放入集合;
遍历不同日期时,比如把[日期]是明天的行选出来,按照 换手率 排序,取前10行。
下面的代码哪里错了?
谢谢!
Dim dr As DataRow Dim dr1 As DataRow \'获得所有日期,保存在集合中 Dim rq0s As List(Of String) = DataTables("批量预测").SQLGetValues("日期") For Each rq0 As String In rq0s \'获得该日期的全部行,按换手率排序 If CDate(rq0) = Date.Today.AddDays(1) Then \'预测明天,将字符转为日期 Dim rqs As List(Of DataRow) = DataTables("批量预测").sqlSelect("[日期] = \'" & CDate(rq0) & "\' And 4.5 < 预测涨跌幅 < 5.5 ", "平均换手率 DESC") msgbox(rqs.Count) If rqs.Count > 1 Then For n As Integer = 0 To 3 \'遍历前10行 dr = DataTables("牛熊池").sqlFind("[日期] = " & rq0 And "代码 = \'" & rqs(n)("代码") & "\'") If dr IsNot Nothing Then \'如果找到的话 dr("代码") = rqs(n)("代码") dr("日期") = rqs(n)("日期") dr("预测涨跌幅") = rqs(n)("预测涨跌幅") dr("预测时间") = Date.Now dr("预测来源") = "自动" Else dr1 = DataTables("牛熊池").AddNew() dr1("代码") = rqs(n)("代码") dr1("日期") = rqs(n)("日期") dr1("预测涨跌幅") = rqs(n)("预测涨跌幅") dr1("预测时间") = Date.Now dr("预测来源") = "自动" End If Next Else End If End If Next
|
-- 作者:有点蓝
-- 发布时间:2020/9/3 20:45:00
--
For n As Integer = 0 To math.min(3,rqs.Count - 1) \'遍历前10行
|
-- 作者:天一生水
-- 发布时间:2020/9/3 21:10:00
--
谢谢蓝老师!
这句代码有数据,但是没有显示出来,请老师再帮忙看看。
Dim rqs As List(Of DataRow) = DataTables("批量预测").sqlSelect("[日期] = \'" & CDate(rq0) & "\' And 4.5 < 预测涨跌幅 < 5.5 ", "平均换手率 DESC")
msgbox(rqs.Count)
|
-- 作者:有点蓝
-- 发布时间:2020/9/3 21:18:00
--
And 4.5 < 预测涨跌幅 and 预测涨跌幅 < 5.5
|
-- 作者:天一生水
-- 发布时间:2020/9/3 22:11:00
--
谢谢!
可以了,但是加上排序,又找不到了,
Dim rqs As List(Of DataRow) = DataTables("批量预测").sqlSelect("[日期] = \'" & CDate(rq0) & "\' And 4.5 < 预测涨跌幅 and 预测涨跌幅 < 5.5 ", "","平均换手率 DESC")
知道了,[平均换手率]是表达式列,代码:
(isnull([上1日换手率],0) + isnull([上2日换手率],0) + isnull([上3日换手率],0)) / (iif([上1日换手率] is null, 0, 1) + iif([上2日换手率] is null, 0, 1) + iif([上3日换手率] is null, 0, 1))
此主题相关图片如下:截屏图片.jpg

[此贴子已经被作者于2020/9/3 22:37:23编辑过]
|
-- 作者:有点蓝
-- 发布时间:2020/9/3 22:37:00
--
不可能和排序有关
|
-- 作者:天一生水
-- 发布时间:2020/9/3 22:39:00
--
刚看到,这个是表达式列。
求3列的平均值,老师有没有好用的代码?
谢谢!
|
-- 作者:有点蓝
-- 发布时间:2020/9/3 22:44:00
--
试试: Dim rqs As List(Of DataRow) = DataTables("批量预测").sqlSelect("[日期] = \'" & CDate(rq0) & "\' And 4.5 < 预测涨跌幅 and 预测涨跌幅 < 5.5 ", "","(表达式代码放到这里) DESC")
如果不行就使用SQLcommand和sql获取数据吧
|