以文本方式查看主题

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

--  作者:狐表(小白)
--  发布时间:2020/9/19 22:31:00
--  关于筛选最大主键列的问题
蓝老师,以下SQL数据库表[test].[dbo].[YW_采购询价]在按钮事件引用时,为什么只有在表内新增的同种物料_代码存在大于或等于两条记录时,才能提取单价?一条时提取不到单价,也无报错,是不是红色字体的代码写的不对?

Dim drs As List(Of DataRow)
drs = DataTables("请购计划二级_Table1").Select("单价 is null")
   For Each dr As DataRow In drs
     Dim i As Integer = Tables("请购计划二级_Table1").FindRow("单价 is null")
     If i >=0 Then
        Dim dz As Row = Tables("请购计划二级_Table1").Rows(i)
        If dz IsNot Nothing AndAlso dz.IsNull("物料_代码")=False AndAlso dz.IsNull("物料_名称") = false AndAlso dz.IsNull("单价") = true Then
           Dim cmd As New SQLCommand
           cmd.C
           cmd.CommandText = "SELECT 物料_单价 F ROM [test].[dbo].[YW_采购询价]  where  物料_代码=\'" & dz("物料_代码") & "\' and 物料_名称=\'" & dz("物料_名称") & "\' and [_Identify] = (SELECT MAX([_Identify]) F ROM [test].[dbo].[YW_采购询价])"
           dz("单价") = cmd.ExecuteScalar()
         End If
     End If
   Next

--  作者:狐表(小白)
--  发布时间:2020/9/20 9:37:00
--  


--  作者:有点蓝
--  发布时间:2020/9/20 20:34:00
--  
cmd.CommandText = "SELECT top 1 物料_单价 F ROM [test].[dbo].[YW_采购询价]  where  物料_代码=\'" & dz("物料_代码") & "\' and 物料_名称=\'" & dz("物料_名称") & "\'  order by [_Identify] desc"
--  作者:狐表(小白)
--  发布时间:2020/9/20 21:47:00
--  
谢谢