大家救救我,帮我看看

keardy 2003-08-21 08:45:18
物资:品名代号,类别
入库表:品名代号,合计金额,日期
进出表:品名代号,合计金额,日期
库存表:品名代号,收入01...收入12(对应一年12个月),库存01...库存12,年份。

现在要根据上面的表,做个查询,并插入到库存表中
查询是将某项产品的本月收入(合计金额)加起来,将结果更新到收入**列(本月收入),并将结果加上上月库存,将这个和更新到库存**列(本月库存)

我现在写的语句老是有问题,在查询分析器中报错

服务器: 消息 170,级别 15,状态 1,行 7
第 7 行: '品名代号' 附近有语法错误。


语句是:
update 金额汇总 set 收入数08 = 收入数, 库存数08 = 库存07 +收入数 - 发出数, 发出数08 = 发出数
from (select IsNull(sum(b.合计金额), 0) 收入数, (select IsNull(sum(c.合计金额), 0) 发出数, a.品名代号 from 物资 a
Left Join (Select 日期,品名代号,合计金额 from 入库明细 Where month(日期) = month(GetDate())
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) = month(GetDate())) b On A.品名代号 = b.品名代号
Left Join (Select 日期,品名代号,领料金额 from 出库明细 Where month(日期) = month(GetDate())
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) = month(GetDate())) c On A.品名代号 = c.品名代号 group by a.品名代号) d
where 金额汇总.品名代号 = d.品名代号
...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
keardy 2003-08-21
  • 打赏
  • 举报
回复
非常谢谢两位老大
小弟在此跪谢乐。
愉快的登山者 2003-08-21
  • 打赏
  • 举报
回复
update 金额汇总 set 收入数08 = 收入数, 库存数08 = 库存07 +收入数 - 发出数, 发出数08 = 发出数
from (select IsNull(sum(b.合计金额), 0) 收入数, (select IsNull(sum(c.合计金额), 0) 发出数, a.品名代号 from 物资 a
Left Join (Select 日期,品名代号,合计金额 from 入库明细 Where month(日期) = month(GetDate())
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) = month(GetDate())) b On A.品名代号 = b.品名代号
Left Join (Select 日期,品名代号,领料金额 from 出库明细 Where month(日期) = month(GetDate())
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) = month(GetDate())) c On A.品名代号 = c.品名代号 group by a.品名代号) d, 金额汇总 e
where e.品名代号 = d.品名代号


愉快的登山者


◢◣◢◣◢◣
pengdali 2003-08-21
  • 打赏
  • 举报
回复


month(日期) = month(GetDate())

有问题,去年的同月也找出来了。


update 金额汇总 set 收入数08 = 收入数, 库存数08 = 库存07 +收入数 - 发出数, 发出数08 = 发出数
from (select IsNull(sum(b.合计金额), 0) 收入数, IsNull(sum(c.合计金额), 0) 发出数, a.品名代号 from 物资 a
Left Join (Select 日期,品名代号,合计金额 from 入库明细 Where datediff(month,日期,getdate())=0
Union all Select 日期,品名代号,合计金额 from 一进一出 Where datediff(month,日期,getdate())=0) b On A.品名代号 = b.品名代号
Left Join (Select 日期,品名代号,领料金额 from 出库明细 Where datediff(month,日期,getdate())=0
Union all Select 日期,品名代号,合计金额 from 一进一出 Where datediff(month,日期,getdate())=0) c On A.品名代号 = c.品名代号 group by a.品名代号) d
where 金额汇总.品名代号 = d.品名代号
pengdali 2003-08-21
  • 打赏
  • 举报
回复
update 金额汇总 set 收入数08 = 收入数, 库存数08 = 库存07 +收入数 - 发出数, 发出数08 = 发出数
from (select IsNull(sum(b.合计金额), 0) 收入数, IsNull(sum(c.合计金额), 0) 发出数, a.品名代号 from 物资 a
Left Join (Select 日期,品名代号,合计金额 from 入库明细 Where month(日期) = month(GetDate())
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) = month(GetDate())) b On A.品名代号 = b.品名代号
Left Join (Select 日期,品名代号,领料金额 from 出库明细 Where month(日期) = month(GetDate())
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) = month(GetDate())) c On A.品名代号 = c.品名代号 group by a.品名代号) d
where 金额汇总.品名代号 = d.品名代号

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧