按照出庫要求資訊匹配入庫的批次資訊
本帖最後由 lazygc520 於 2013-08-07 09:39:09 編輯
資料庫分為3張表,kw,vp,st開頭的三張表,前兩張表代表入庫,st開頭的代表出庫要求。入庫的話前兩張表聯集查詢求得已入庫的cust_no和lotno,出庫表已知stockno的資訊及對應的cust_no,stockno存在排序關係,按照表st中的欄位c1_time,c_type,adress來排序,stockno按照順序排列,lotno按照先入先出的定序和stockno的對應數量匹配,對等的話則排除已匹配的lotno,新的lotno和接下來的stockno相匹配直至數量符合要求,依次類推。數量的結果是st表中,mount*snp的結果。能否用遍曆入庫表的資訊來完成此操作?
上傳附件地址:http://download.csdn.net/detail/lazygc520/5882535
已知入庫的資料、出庫的要求,根據出庫要求來匹配入庫的批次資料。
例如:在ch_result頁面,ch_result.php?stockno=SU13061301010,實現出貨批次那一欄的資料。
kw,vp表聯集查詢得到的cust_no和lotno得到的結果:
$sql = "select CONCAT(SUBSTRING_INDEX(a.cust_no,' ',1),
SUBSTRING_INDEX(a.cust_no,' ',-1)) as cust_no,b.lotno as lotno,
count(b.lotno) as lotno_count from `kw_manage` as a,
`vp_barcode_2d_y` as b where a.packageno = b.packageno
group by lotno order by lotno asc";
$result = mysql_query($sql);
$ars =array();
while($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
$ars[] = $row;
}
var_dump($ars);
得到的結果:
array(1) { [0]=> array(3) { ["cust_no"]=> string(10) "237033AW0A" ["lotno"]=> string(4) "3207" ["lotno_count"]=> string(3) "480" } }
分享到:
------解決方案--------------------
庫存表增加一個出庫欄位
入庫時該欄位為0
出庫時該欄位為已出庫數量
入庫數量 - 出庫數量 = 該批次剩餘數量
又
設 select * from tbl_name
id num
1 20
2 20
3 30
SELECT * , (SELECT sum( num ) FROM tbl_name WHERE id<=a.id ) as c FROM tbl_name a
id num c
1 20 20
2 20 40
3 30 70
則 c 列可做為出庫來源的依據
如果出庫封裝的規模為 30
那麼對應的id為:
封裝1 1,2
封裝2 2,3
封裝3 3,後續id