以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 分配异常 (http://foxtable.net/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() |
-- 作者:有点蓝 -- 发布时间: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 -- 老师,帮忙再看下提示的异常,谢谢
|
-- 作者:有点蓝 -- 发布时间: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的用法 |