Foxtable(狐表)用户栏目专家坐堂 → sQL直接统计库龄


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

主题:sQL直接统计库龄

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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
sQL直接统计库龄  发帖心情 Post By:2018/12/18 15:18:00 [只看该作者]

老师我用的SQL数据库,狐表里面统计表名称为“溯源码”,其中字段【入库日期】为Date日期型,格式:2018-12-11;以下代码正确吗?
Dim dr As DataRow = DataTables("用户信息").find("用户名 = '" & 用户名 & "'")  '找到当前登录者所在的行
Dim filter As String = "1=2"
If dr("职位") = "管理者" Then
    Dim drs = DataTables("部门信息").Select("层级 like '" & dr("层级") & "%'")
    For Each cdr As DataRow In drs
        Filter &= " or 出库部门 = '" & cdr("所属部门") & "'" 
    Next
    Else If dr("职位") = "职员" Then
    Filter = "出库部门 = '" & dr("所属部门") & "'" 

End If
Dim g As New SQLGroupTableBuilder("库龄分析", "dbo.溯源码") ‘老师这个表的名称应该写狐表里面的名称,还SQL库中的名称,需要带dbo吗?
g.Groups.AddDef("商品名称")
g.Groups.AddDef("商品条码")
g.Totals.AddDef("入库日期",AggregateEnum.Min,"最大库龄")
g.Totals.AddDef("入库日期",AggregateEnum.Average,"平均库龄")
g.Totals.AddExp("1-30天","iif(入库日期 >= Date.Today.AddDays(-30),1,0)")
g.Totals.AddExp("30-60","iif(入库日期 >= Date.Today.AddDays(-60) And 入库日期 < Date.Today.AddDays(-30),,1,0)")  ’这段代码能否这么写
g.Filter = filter
g.Build()
MainTable = Tables("库龄分析")

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/18 16:11:00 [只看该作者]

1、
 
Dim g As New SQLGroupTableBuilder("库龄分析", "溯源码")
 
2、

g.Totals.AddExp("1-30天","case when 入库日期>='" & Date.Today.AddDays(-30) & "' then 1 else 0 end")


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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/12/18 16:53:00 [只看该作者]

老师提示SQL统计语句错误

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/18 17:06:00 [只看该作者]

以下是引用weibu在2018/12/18 16:53:00的发言:
老师提示SQL统计语句错误

 

贴出所写代码。


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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/12/18 17:16:00 [只看该作者]

Dim dr As DataRow = DataTables("用户信息").find("用户名 = '" & 用户名 & "'")  '找到当前登录者所在的行
Dim filter As String = "1=2"
If dr("职位") = "管理者" Then
    Dim drs = DataTables("部门信息").Select("层级 like '" & dr("层级") & "%'")
    For Each cdr As DataRow In drs
        Filter &= " or 当前所在部门 = '" & cdr("所属部门") & "'And 是否可用 = 1" 
    Next
    Else If dr("职位") = "职员" Then
    Filter = "当前所在部门 = '" & dr("所属部门") & "'And 是否可用 = 1" 

End If
Dim g As New SQLGroupTableBuilder("库龄分析", "溯源码")
g.Groups.AddDef("商品名称")
g.Groups.AddDef("商品条码")
g.Totals.AddDef("入库日期",AggregateEnum.Min,"最大库龄")
g.Totals.AddDef("入库日期",AggregateEnum.Average,"平均库龄")
g.Totals.AddExp("1-30天","case when 入库日期>='" & Date.Today.AddDays(-30) & "' then 1 else 0 end")
g.Totals.AddExp("30-60天","case when 入库日期>='" & Date.Today.AddDays(-60) & "' and 入库日期<'" & Date.Today.AddDays(-30) & "' then 1 else 0 end")
g.Filter = filter
g.Build()
MainTable = Tables("库龄分析")

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/18 18:00:00 [只看该作者]

1、

 

Dim g As New SQLGroupTableBuilder("库龄分析", "溯源码")
g.ConnectionName = "数据源名"

 

2、删减你的代码,定位看哪句代码开始有问题


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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/12/19 9:24:00 [只看该作者]

老师找到错误代码了,日期没有平均值。感谢

 回到顶部