Foxtable(狐表)用户栏目专家坐堂 → [求助]日期列不同值的集合


  共有4793人关注过本帖树形打印复制链接

主题:[求助]日期列不同值的集合

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]日期列不同值的集合  发帖心情 Post By: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

 


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/3 20:45:00 [只看该作者]

For n As Integer = 0 To math.min(3,rqs.Count - 1   '遍历前10行

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By: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)


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/3 21:18:00 [只看该作者]

 And 4.5 < 预测涨跌幅 and 预测涨跌幅 < 5.5 

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/3 22:37:00 [只看该作者]

不可能和排序有关

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2020/9/3 22:39:00 [只看该作者]

刚看到,这个是表达式列。

求3列的平均值,老师有没有好用的代码?

谢谢!


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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获取数据吧

 回到顶部