以文本方式查看主题

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

--  作者:nuoyan89
--  发布时间:2023/3/9 9:58:00
--  分配异常
老师,如图1,我的ZK-B-108 这个机床中的制造费用_设备折旧这个应该是0,因为我的折旧类型=按汇总算(如图2),但现在实际结果却是折旧类型=“按设备算”了,请帮忙看看,谢谢
Dim cmd1 As New SQLCommand
cmd1.C
cmd1.CommandText = "UP DATE  a1 S et a1.制造费用_其他折旧  = b1.本月折旧 / c1.加工时间 * a1.加工时间   From (S elect 月份, Sum(本月折旧) As 本月折旧 From 资产折旧明细 where 折旧类型 = \'按汇总算\' group by 月份) as b1 ,工序跟踪表 as a1,(S elect 月份, sum(加工时间) as 加工时间  From 工序跟踪表 group by 月份 ) as c1 Where a1.月份 = b1.月份 and a1.月份=c1.月份"
cmd1.ExecuteNonQuery()
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "UP DATE  a s et  a.制造费用_设备折旧 = b.本月折旧 / c.加工时间  * a.加工时间  from 工序跟踪表 as a ,资产折旧明细 as b ,(S elect 月份,使用设备 sum(加工时间) as 加工时间  From 工序跟踪表 group by 月份,使用设备) as c Where a.月份 = b.月份 and a.月份 = c.月份 and a.使用设备 = b.资产编号 and a.使用设备 = c.使用设备 and b.折旧类型 = \'按设备算\'"
cmd.ExecuteNonQuery()


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看





--  作者:有点蓝
--  发布时间:2023/3/9 10:08:00
--  
cmd.CommandText = "UP DATE  a s et  a.制造费用_设备折旧 = b.本月折旧 / c.加工时间  * a.加工时间  from 工序跟踪表 as a  inner join 资产折旧明细 as b on a.月份 = b.月份 and a.使用设备 = b.资产编号 and b.折旧类型 = \'按设备算\' inner join (S elect 月份,使用设备 sum(加工时间) as 加工时间  From 工序跟踪表 group by 月份,使用设备) as c on a.月份 = c.月份  and a.使用设备 = c.使用设备 "
--  作者:nuoyan89
--  发布时间:2023/3/9 13:37:00
--  
老师,帮忙再看下提示的异常,谢谢

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2023/3/9 14:29:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626
--  作者:nuoyan89
--  发布时间:2023/3/9 14:43:00
--  
老师,还有一个问题,资产折旧明细这个表我想变更成窗口表的名称(窗口表名称:固定资产折旧_资产折旧),

cmd.CommandText = "UP DATE  a s et  a.制造费用_设备折旧 = b.本月折旧 / c.加工时间  * a.加工时间  from 工序跟踪表 as a  inner join 资产折旧明细 as b on a.月份 = b.月份 and a.使用设备 = b.资产编号 and b.折旧类型 = \'按设备算\' inner join (S elect 月份,使用设备 sum(加工时间) as 加工时间  From 工序跟踪表 group by 月份,使用设备) as c on a.月份 = c.月份  and a.使用设备 = c.使用设备 "

--  作者:有点蓝
--  发布时间:2023/3/9 14:56:00
--  
SQL只能使用数据库里有的表
--  作者:nuoyan89
--  发布时间:2023/3/9 15:00:00
--  
老师,3楼的问题是我在执行该代码时,提示3楼如图1的那个异常,在百度上搜索了inner join 他的用法,改来还是不对


Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "UPDATE  a s et  a.制造费用_设备折旧 = b.本月折旧 / c.加工时间  * a.加工时间  from (工序跟踪表 as a inner join 资产折旧明细 as b on a.月份 = b.月份 and a.使用设备 = b.资产编号 and b.折旧类型 = \'按设备算\') inner join (S elect 月份,使用设备 sum(加工时间) as 加工时间  From 工序跟踪表 group by 月份,使用设备 as c ) on a.月份 = c.月份  and a.使用设备 = c.使用设备"
cmd.ExecuteNonQuery()
[此贴子已经被作者于2023/3/9 15:11:14编辑过]

--  作者:有点蓝
--  发布时间:2023/3/9 15:12:00
--  
使用的access数据库?
--  作者:nuoyan89
--  发布时间:2023/3/9 15:18:00
--  
不是的,是SQL SERVER 数据库
--  作者:有点蓝
--  发布时间:2023/3/9 15:27:00
--  
SqlServer就是2楼的用法。7楼是access的用法