Foxtable(狐表)用户栏目专家坐堂 → 查询表取值问题咨询


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

主题:查询表取值问题咨询

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


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

如果是access数据库,就这样写sql语句

 

select 工资编号, 岗位, iif(工资1>工资2, 工资1, 工资2) as 工资 from {表A}

 

如果是sqlserver

 

select 工资编号, 岗位, (case when 工资1>工资2 then 工资1 else 工资2 end) as 工资 from {表A}

 


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


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

 上传实例说明情况。

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


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

 获取列的最大值,然后比较两个列的最大值

 

 http://www.foxtable.com/webhelp/scr/0393.htm

 

 具体问题做个项目上来,说明要做什么。


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


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

分组得出统计表

 

http://www.foxtable.com/webhelp/scr/0158.htm

 

然后比较 购股标准和对应购股标准 的值。可以直接加入表达式列,或者循环每一行比较。


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


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

回复9楼,你可以通过代码新增表达式列,如

 

DataTables("表A").DataCols.Add("临时列", Gettype(Double), "iif(kkk>kkkk, kkk, kkkk)")

 

而且,你那个分组统计表,也是可以拷贝代码出来完成的。


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


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

 要用代码处理。先根据工资编号分组,得出表,然后插入姓名列和行政职务列,循环每一行,根据最大的购股数,获取对应值填入。

 

 不会写代码,上传项目。


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


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

 

[此贴子已经被作者于2017/2/20 17:21:28编辑过]

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


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

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("工资编号", Gettype(String), 16)
dtb.AddDef("姓名", Gettype(String), 16)
dtb.AddDef("行政职务", Gettype(String), 16)
dtb.AddDef("技术职务等级", Gettype(String), 16)
dtb.AddDef("购股1", Gettype(Double))
dtb.AddDef("购股2", Gettype(Double))
dtb.AddDef("购股3", Gettype(Double))
dtb.Build()
Dim dt1 As DataTable = DataTables("统计")
Dim dt2 As DataTable = DataTables("每个人购股标准取值")
For Each nm As String In dt2.GetValues("工资编号")
    Dim dr As DataRow = dt1.AddNew()
    dr("工资编号") = nm
    Dim num1 As Double = dt2.Compute("max(购股标准)", "工资编号 = '" & nm & "'")
    Dim num2 As Double = dt2.Compute("max(对应购股标准)", "工资编号 = '" & nm & "'")
    dr("购股1") = num1
    dr("购股2") = num2
    Dim fdr As DataRow
    If num1 > num2 Then
        dr("购股3") = num1
        fdr = dt2.find("工资编号 = '" & nm & "' and 购股标准 = '" & num1 & "'")
    Else
        dr("购股3") = num2
        fdr = dt2.find("工资编号 = '" & nm & "' and 对应购股标准 = '" & num2 & "'")
    End If
    dr("姓名") = fdr("姓名")
    dr("技术职务等级") = fdr("技术职务等级")
    dr("行政职务") = fdr("行政职务")
Next
MainTable= Tables("统计")

 回到顶部