以文本方式查看主题

-  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=132208)

--  作者:工匠
--  发布时间:2019/3/16 17:41:00
--  [求助]关于周期范围取值
老师好!
      请帮完善一下另外一种取值方式:
1.在表A增加行(自动生成了“加入日期”)编辑"子件编码",从表B做如下取值已实现
2.在表A增加行(自动生成了“加入日期”)编辑"子件编码",根据现在的加入日期,以录入的“子件编码”从表B的“产品编码”列找到同值,再从表B“日期”列6个月内或180天内(从表A的加入日期起与表日期6个月内或180天内)取最高/最低/平均单价,请老师帮完善一下,谢谢!

Select Case e.DataCol.Name

        Case "子件编码","子件品名","用量"

        If e.DataRow.IsNull("子件编码")=False AndAlso e.DataRow.IsNull("子件品名")=False  AndAlso e.DataRow.IsNull("用量")=False  Then
        e.DataRow("最高单价") = DataTables("表B").SQLCompute("max(单价)","产品编码=\'" & e.DataRow("子件编码")  & "\'")
        e.DataRow("最低单价") = DataTables("表B").SQLCompute("min(单价)","产品编码=\'" & e.DataRow("子件编码")  & "\'")
        e.DataRow("平均单价") = DataTables("表B").SQLCompute("avg(单价)","产品编码=\'" & e.DataRow("子件编码")  & "\'")
   
        End If
End Select

谢谢!

--  作者:有点蓝
--  发布时间:2019/3/16 17:45:00
--  
参考:http://www.foxtable.com/webhelp/scr/2720.htm
--  作者:工匠
--  发布时间:2019/3/16 17:59:00
--  
谢谢有点蓝老师,我看了很久帮助,还是不懂如何实现这种需求,请老师帮忙完善一下,谢谢!
[此贴子已经被作者于2019/3/17 16:34:57编辑过]

--  作者:有点蓝
--  发布时间:2019/3/18 8:37:00
--  
Select Case e.DataCol.Name

        Case "子件编码","加入日期"

        If e.DataRow.IsNull("子件编码")=False AndAlso e.DataRow.IsNull("加入日期")=False  Then
        e.DataRow("最高单价") = DataTables("表B").SQLCompute("max(单价)","产品编码=\'" & e.DataRow("子件编码")  & "\' and 日期 > \'" & e.DataRow("加入日期").addmonths(-6) & "\'")
   
        End If
End Select

--  作者:工匠
--  发布时间:2019/3/18 23:07:00
--  
谢谢老师,有了这个例子,后续多种情况下,取值灵活多了,谢谢!