Foxtable(狐表)用户栏目专家坐堂 → [求助] SQL加载数据后再查找统计数据


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

主题:[求助] SQL加载数据后再查找统计数据

帅哥,在线噢!
2900819580
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1310 积分:9518 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] SQL加载数据后再查找统计数据  发帖心情 Post By:2019/4/23 15:22:00 [只看该作者]

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim cmd As New SQLCommand
cmd.C

cmd.CommandText = "Sele ct a.* "
cmd.CommandText &= ", d.FName As 名称,d.Fmodel as 规格型号,d.FNumber as 物料代码"
cmd.CommandText &= ", c.Fnote as 库位号,e.FName as 仓库"
cmd.CommandText &= ", (Sel ect sum(实发数量) from [" & Vars("mes") & "].dbo.生产发料单 as j where j.源单ID = a.ID) as 已发料 "
cmd.CommandText &= ", ([需求数量] - [已发料]) As 应发数量 "
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
cmd.CommandText &= " from [" & Vars("mes") & "].dbo.生产领料单 As a "

cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_ICItemCore As d on a.物料ID = d.FItemID "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_ICItemMaterial As c on a.物料ID = c.FItemID "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_ICItemBase As b on a.物料ID = b.FItemID "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_Stock As e on b.FDefaultLoc = e.FItemID "

cmd.CommandText &= " where 任务单号 = '" & e.Form.Controls("Text任务单号").text & "'"

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

Dim Sqldt As DataTable = cmd.ExecuteReader
Dim tb As Table = Tables(e.Form.Name & "_Tab料单")

 

 红色代码出错!

 

[此贴子已经被作者于2019/4/23 16:10:34编辑过]

 回到顶部
帅哥,在线噢!
2900819580
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1310 积分:9518 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/23 16:35:00 [只看该作者]

老师,如上代码,如果我想查找出,筛选条件又应该如何修改。

cmd.CommandText &= " where 已发料 > 需求数量 "


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


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

 

弹出你合成的sql语句,在数据库那里执行,看报什么错。

 

 


 回到顶部
帅哥,在线噢!
2900819580
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1310 积分:9518 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/23 17:01:00 [只看该作者]


列名 '已发料' 无效。

cmd.CommandText &= ", ([需求数量] - [已发料]) As 应发数量 "

 

cmd.CommandText &= " where 已发料 > 需求数量 "

老师,通过删除比对,是上面这行有错误,是不是已发料是合成的,所以不能做公式。

 

[此贴子已经被作者于2019/4/23 17:01:43编辑过]

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


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

 

你数据库那里没有【已发料】列。表达式列,不能直接使用。

 

 


 回到顶部
帅哥,在线噢!
2900819580
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1310 积分:9518 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/23 19:26:00 [只看该作者]

If dt.DataCols.Contains("应发数量") = False Then dt.DataCols.Add("应发数量",Gettype(Single),"[需求数量] - isnull([已发料],0)")  

 

cmd.CommandText &= " where  需求数量 >  (Sel ect sum(实发数量) from {生产发料单} as v where v.源单ID = a.ID)"

 

变通解决,谢谢老师!


 回到顶部