以下加工单明细SQL语句 返回的数据怎么不对!请帮改...

3tzjq 2006-09-13 02:16:13
发料单中的字段"已发料数量",
验收单中的字段"已使用数量"

加工单的字段"装配数量" 数量是一样多的!
而且"验收单","发料单"的主表只有一条记录.那么返回的也应该相同.可返回的结果:
http://img649.photo.163.com/sezjq/13984622/2010097974.jpg

存储过程:
CREATE PROCEDURE GetProduceDetails
(
@ID varchar(25)--加工单号
)
As
Select ProduceDetail.*,
Material.物料描述,
(Select SUM(数量) From ExecuteMDetails Where 单号 In
(Select 单号 From CommonMasters Where 引用单号 = @ID) And
ExecuteMDetails.物料编码 = ProduceDetail.物料编码) As 已发料数量,
(Select SUM(使用数量) From ProducePassDetail Where 验收单号 In
(Select 验收单号 From ProducePassMaster Where 加工单号 = @ID) And
ProducePassDetail.物料编码 = ProduceDetail.物料编码) As 已使用数量,
Material.计量单位

From ProduceDetail,Material
Where ProduceDetail.加工单号 = @ID And
Material.物料编码 = ProduceDetail.物料编码

Return @@RowCount
GO
...全文
212 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
3tzjq 2006-09-13
  • 打赏
  • 举报
回复
已找到解决方法:
因为实际业务是允许一张单据存在多条相同明细记录的.但它们的数量,...可能不相同.目的也可能不相同.我打算提供一个"合并相同(选定)记录"的功能,这样就可以解决因用户误添加相同行的问题.
Alexandria 2006-09-13
  • 打赏
  • 举报
回复
Add constraint
zsforever 2006-09-13
  • 打赏
  • 举报
回复
...
3tzjq 2006-09-13
  • 打赏
  • 举报
回复
哈!打到原因了!
因为CommonMasters,ExecuteMDetails表是入库/发料/退料....的公共表,用字段"类型"区分,这里忘了加(类型 = 1 And ...):
...Where 类型 = 1 And 单号 In
(Select 单号 From CommonMasters Where 类型 = 1 And 引用单号 = @ID
...

还有就是原来明细表中存在两条 物料编码 为"RES-0R00805-01"的记录,所以"已使用数量"里的数值 = 7036了!

现在的新问题是:怎样避免在明细表中添加相同"物料编码"的记录?
3tzjq 2006-09-13
  • 打赏
  • 举报
回复
to tx1icenhe(冒牌马可 V0.3):
试过了,效果是一样的!

to libin_ftsafe(子陌红尘:当libin告别ftsafe):
是的!Material 是基础表
子陌红尘 2006-09-13
  • 打赏
  • 举报
回复
表ProduceDetail与Material是一对多的关系吧?
tx1icenhe 2006-09-13
  • 打赏
  • 举报
回复
try:

CREATE PROCEDURE GetProduceDetails
(
@ID varchar(25)--加工单号
)
As
Select a.*,
b.物料描述,
e.已发料数量,
h.已使用数量,
b.计量单位
From ProduceDetail a,Material b,(Select c.物料编码,SUM(c.数量) as 已发料数量 From ExecuteMDetails c,CommonMasters d Where d.引用单号 = @ID And c.单号=d.单号 group by c.物料编码) as e,(Select f.物料编码,SUM(f.使用数量) As 已使用数量 From ProducePassDetail f,ProducePassMaster g Where f.验收单号=g.验收单号 and g.加工单号 = @ID group by f.物料编码) As h
Where a.加工单号 = @ID And
b.物料编码 = a.物料编码 and
a.物料编码 = e.物料编码 and
a.物料编码 = h.物料编码



3tzjq 2006-09-13
  • 打赏
  • 举报
回复
回复YiZhiNet(郁闷中~~~) :
VS2005 + SQL2005
DevExpress.GridControl
3tzjq 2006-09-13
  • 打赏
  • 举报
回复
表结构涉及太多了!不贴了.
基本就是:
加工单/发料单/验收单 都有主从关系表,各从表都有字段"物料编码"
其它不同的就是:
加工单有"装配数量"字段;
发料单有"已发料数量"字段;
验收单有"已使用数量"字段

现在要把 发料单/验收单的"...数量"字段列引到加工单的明细当中去.
tx1icenhe 2006-09-13
  • 打赏
  • 举报
回复
怎么不用连接
九斤半 2006-09-13
  • 打赏
  • 举报
回复
楼主什么开发环境?那个网格控件叫什么???
子陌红尘 2006-09-13
  • 打赏
  • 举报
回复
表结构?

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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