请教:仓存盘点对数的问题(100分)

  • 主题发起人 主题发起人 lizee2008
  • 开始时间 开始时间
L

lizee2008

Unregistered / Unconfirmed
GUEST, unregistred user!
我们有一个入出库仓存系统,可以即时查询各种产品库存情况.为了保证数据的准确性,每月月底盘点时,仓管人员会手动做一月实际盘点的数据,用excel表格做的,不是来自于系统.<br>现在要求:<br>通过程序将实际做的excel盘点数据导入至SQL中,与系统中仓存数据比较,若不对上数,则报出相关的物料编号及库存差等信息报表,并导出.<br>请教各位,如何写这对比两表数据的SQL语句,两表中都有物料编码和库存箱数.
 
首先,盘点表格式要固定,然后导入数据库中,然后将库存一导入的数据进行对比,显示结果。
 
谢谢zbdzjx,<br>请问有没有更好点的方法,如果不导入数据库,可否直接将excel表中数据与SQL中的数据对比,另外对于显示结果方面,我看有些ERP系统以文本形式显示的,能否以报表形式显示
 
还有哪位朋友帮一下呀
 
就是你自已做个手工录入界面,就不需要从EXCEL导入了
 
盘点数直接在你自己的系统里输入,如果坚持要从excel里输入,那么你应先导出一个excel文件,并且有个相应的物料编码,让他们在里面折腾。这样子你才有可以对得起来,不然你永远对不起,除非全手工。
 
to roadexplorer<br>仓管会实际去仓库点数,然后手工做帐,用excel;<br>to aerobull<br>如果从系统中导出至excel,然后再人工一条条去核对,工作量太大的.<br>要求用程序来自动对数. 就是想核对一下系统中盘点的结果与实际上盘点数的结果是否一至,并显示有偏差的情况.<br>我昨晚想了想,还是采用zbdzjx的方法,将实际盘点的excel导入到SQL中,然后与系统中的库存表核对,select * from 导入的实际盘点表 where 物料编号 not in (select 物料编号 from 仓库表) 这样可以找出实际盘点中有的物料而系统中没有;同样的方法可以找出系统中有的物料而实际盘点中没有. <br>但是若两表中都有的物料编号却数量不对,怎样核对呀.
 
无论如何折腾,你必须确保有一个物料的编码,不然你怎么核对?<br>有了这么一个基本原则,接下去怎么折腾都简单了。
 
有物料编码的,在实际盘点表中与仓存表中都有.在两表中<br>怎么对数据呢,
 
检查excel表格格式,不对就提示让人修改.<br>excel本来支持格式限制,锁定,你做好格式,加锁,让人填就行了.<br>但是有缺点,最好是做一个简单小程序,让人填写,产生成excel,给你,然后导入,<br>DIY是王道.
 
非常感谢各位的建议,有没有哪位朋友能提供对比两表数据的SQL语句,两表中都有物料编码和库存箱数,要将有差异的物料编码导出来.<br>我在网上找到一句对比两表差异的记录假如为a,b表,则<br>select &nbsp; * &nbsp; &nbsp; <br>&nbsp; from &nbsp; a &nbsp; full &nbsp; outer &nbsp; join &nbsp; b &nbsp; on &nbsp; a.id=b.id &nbsp; <br>&nbsp; where &nbsp; a.id &nbsp; not &nbsp; in &nbsp; <br>&nbsp; (select &nbsp; a.id &nbsp; from &nbsp; a &nbsp; inner &nbsp; join &nbsp; b &nbsp; on &nbsp; a.id &nbsp; =b.id)<br>.但是如果是a,b表中物料编码相同,而数量不同呢?
 
你把SQL数据导出到EXCEL,然后和实际上盘点EXCEL表相比,用<br>VLOOKUP函数,放到一个表中,这样可以达到要求<br>我就是这样对的
 
谢谢kuaishang,我看看VLOOKUP函数
 
大家帮忙看看,下面语句可以吗?我也是从网上找的,再组合起来,意思就是先a,b两表不同记录数和库存量不同记录找出来后,再写入一临时表中,在导出时只要搜索一下这个临时表,用D做个导出即可.<br>select &nbsp; * &nbsp; into &nbsp; #t from<br>(<br>(select &nbsp; * &nbsp; &nbsp; <br>&nbsp; from &nbsp; a &nbsp; full &nbsp; outer &nbsp; join &nbsp; b &nbsp; on &nbsp; a.id=b.id &nbsp; <br>&nbsp; where &nbsp; a.id &nbsp; not &nbsp; in &nbsp; <br>&nbsp; (select &nbsp; a.id &nbsp; from &nbsp; a &nbsp; inner &nbsp; join &nbsp; b &nbsp; on &nbsp; a.id &nbsp; =b.id))<br>union all<br>(select a.id,(a.qty-b.qty) as pcqty &nbsp;form a &nbsp; where &nbsp; exists( &nbsp; <br>&nbsp; select &nbsp; * &nbsp; from &nbsp;b &nbsp; &nbsp; <br>&nbsp; where &nbsp; a.id=b.id &nbsp; and &nbsp; a.qty&lt;&gt;b.qty <br>&nbsp; ) &nbsp;) <br>)
 
感谢各位的朋友的帮忙,语句这边我搞定,就是上面的,稍微改一下就行.接下来做界面就好办了.
 
后退
顶部