server 2000 开发遇到的问题

YZH_0710 2012-03-23 10:16:03
有表 ck_Material_Stock ,ck_Material_In,ck_Material_out,ck_SaveRemnant 表 ck_Material_In 有字段amount_1 (int)

表 ck_Material_out 有字段amount_2 (int) 表 ck_SaveRemnant 有字段amount_4 (Int) 单 表 ck_SaveRemnant 里面的日期字段日期为1月份是 查出来 编号为 a 的东西 数量为 120 执行语句为

Select sum(amount_4) from where 编号=''and 日期='2012-01' 查出来为120

当我用下面语句时 查出来竟然是480 请问这个是哪里出现的问题 求高手解答

Select Material_Num,spec,StoreName, sum(amount_1),sum(amount_2) ,sum(amount_4) from ck_Material_Stock
left join ck_SaveRemnant on (ck_SaveRemnant.Material_Nums=Material_Num and ck_SaveRemnant.YearMonth='2012-01')
left join ck_Material_in on(ck_Material_in.MaterialIN=Material_Num and ck_Material_in.YearMonth='2012-01')
left join ck_Material_Out on(ck_Material_Out.Material_No=Material_Num and ck_Material_Out.YearMonth='2012-01')
group by Material_Num,Spec,StoreName order by Material_Num


结构amount_4 为 480 ?
...全文
30 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2012-03-23
  • 打赏
  • 举报
回复
你多半是由于各表之间的连接造成重复计算了amount_4.

你先将sum去掉,看看是不是出现了重复数据?

Select Material_Num,spec,StoreName, amount_1,amount_2 ,amount_4 from ck_Material_Stock
left join ck_SaveRemnant on (ck_SaveRemnant.Material_Nums=Material_Num and ck_SaveRemnant.YearMonth='2012-01')
left join ck_Material_in on (ck_Material_in.MaterialIN=Material_Num and ck_Material_in.YearMonth='2012-01')
left join ck_Material_Out on (ck_Material_Out.Material_No=Material_Num and ck_Material_Out.YearMonth='2012-01')

34,590

社区成员

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

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