Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/10 19:45:00 [显示全部帖子]

Dim dt As DataTable = DataTables("工资库")
Dim dt1 As DataTable = DataTables("薪级工资")
Dim dt2 As DataTable = DataTables("岗位工资")
For Each dr As DataRow In dt.Select("")
    Dim fdr As DataRow = dt1.Find("薪级等级 = '" & dr("薪级等级") & "'")
    If fdr Is Nothing Then
        dr("薪级工资") = Nothing
    Else
        Dim str As String = ""
        For Each c As DataCol In dt1.DataCols
            If c.name.EndsWith("标准") Then
                Dim s As String = c.Name.Replace("标准", "")
                If dr("发薪年月") > s  Then
                    str = c.name
                End If
            End If
        Next
        If str > "" Then
            'dr("备注") = str
            dr("薪级工资") = fdr(str)
        End If
    End If
    fdr = dt2.Find("岗位等级 = '" & dr("岗位等级") & "'")
    If fdr Is Nothing Then
        dr("薪级工资") = Nothing
    Else
        Dim str As String = ""
        For Each c As DataCol In dt2.DataCols
            If c.name.EndsWith("岗位工资") Then
                Dim s As String = c.Name.Replace("_岗位工资", "").Replace("事业_", "")
                If dr("发薪年月") > s  Then
                    str = c.name
                End If
            End If
        Next
        If str > "" Then
            dr("备注") = str
            dr("薪级工资") = fdr(str)
        End If
    End If
   
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/11 9:58:00 [显示全部帖子]

以下是引用evolymft在2017/5/11 9:40:00的发言:
再请教老师:相同的功能可以用SQL语句用查询表生成吗?

 

用sql语句会更麻烦。1、你的列不是固定的,标准在增加;2、你的列名也不是固定的。所以只能循环所有列去判断。

 

你可以规范下你的表结构。用这样的列 【等级】【日期】【值】,如果这样,就可以很轻易的根据等级和日期查询到对应的值。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/11 15:05:00 [显示全部帖子]

以下是引用evolymft在2017/5/11 14:03:00的发言:
另外再请你帮忙改一下表结构,能够达到目的就行啦。

 

不要用sql语句,直接用代码查吧。

 

你这样设计表也行,可以减少数据录入,就是检索麻烦一点而已。

 

表结构改变,就是把列,改成行,一个等级、一个标准,用一行记录。


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/11 22:33:00 [显示全部帖子]

select 发薪年月, a.薪级等级, iif(发薪年月>=201607, [201607标准], iif(发薪年月>=201410, [201410标准],iif(发薪年月>=200607, [200607标准],null))) as 薪级工资 from {工资库} as a inner join {薪级工资} as b on val(a.薪级等级) = val(b.薪级等级) where a.薪级等级 is not null

 回到顶部