解决方案 »
- 02年后就没用过php了,最近有空想重新捡起这个轻量又好用的web开发工具,有些最基本问题请教
- 求救啊,浏览器端与Mysql的中文字符处理问题
- 关于应聘PHP程序员问题
- 想用PHP,把文本内容,写进MYSQL数据库中,不同于一行一条记录的文本数据库!
- 超级简单问题
- 装了easyphp但.php文件无法执行
- PHP从MSSQL中读取备注型字段自动截断问题
- 程序中的小问题?????
- 请教一个显示图片的问题
- thinkphp后端Controller里面方法selectMarks()中printf打印的html代码,在前端放不到body里显示,谁知道咋调格式么?
- 在dreamweaver中html里写不了php
- 使用curl访问https
$sql = "SELECT a.cust_no, a.lotno, count( a.lotno ) FROM vp_barcode_2d_y AS a RIGHT JOIN kw_manage AS b ON a.packageno = b.packageno GROUP BY a.lotno ORDER BY a.lotno, a.cust_no ASC";
$result = mysql_query($sql);
while($v1 = mysql_fetch_array($result,MYSQL_ASSOC))
{
var_dump($v1);
}
/*
array(3) {
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count( a.lotno )"]=>
string(3) "480"
}
array(3) {
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count( a.lotno )"]=>
string(3) "180"
}
*///按照先纳时,再到运地,再车型的顺序求得出库依赖的结果:
$sql2 = "SELECT stock_no, cust_no, mount * snp AS total FROM `stock_detail` ORDER BY arr_time, adress, c_type ASC";
$result2 = mysql_query($sql2);
while($v2 = mysql_fetch_array($result2,MYSQL_ASSOC))
{
var_dump($v2);
}
/*
array(3) {
["stock_no"]=
string(13) "SU13061301011"
["cust_no"]=
string(10) "237033AW0A"
["total"]=
string(3) "195"
}
array(3) {
["stock_no"]=
string(13) "SU13061301011"
["cust_no"]=
string(10) "237033AW0A"
["total"]=
string(3) "195"
}
array(3) {
["stock_no"]=
string(13) "SU13061301016"
["cust_no"]=
string(10) "23703JX30A"
["total"]=
string(2) "15"
}
array(3) {
["stock_no"]=
string(13) "SU13061301016"
["cust_no"]=
string(10) "23703JX30A"
["total"]=
string(2) "30"
}
array(3) {
["stock_no"]=
string(13) "SU13061301016"
["cust_no"]=
string(10) "23703EX80A"
["total"]=
string(3) "105"
}
array(3) {
["stock_no"]=
string(13) "SU13061301016"
["cust_no"]=
string(10) "23703EX80A"
["total"]=
string(3) "120"
}
array(3) {
["stock_no"]=
string(13) "SU13061301033"
["cust_no"]=
string(10) "237033AW0A"
["total"]=
string(3) "210"
}
array(3) {
["stock_no"]=
string(13) "SU13061301032"
["cust_no"]=
string(10) "237033AW0A"
["total"]=
string(3) "255"
}
*/求按照先入先出的规则,入库信息对应出库要求的结果。注:字段total是已知对应的lotno的数量。
kw_manage as b on a.packageno = b.packageno left join stock_detail as c on
b.cust_no = concat(left(c.cust_no,5),' ',right(c.cust_no,5))where
c.stock_no = 'SU13061301011' group by a.barcode order by a.lotno,a.packageno
asc
样式如下:
== 转存表中的数据 vp_barcode_2d_y
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219001|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219002|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
|SU13061301011|VP3.0 130219003|3207
....
//得到的结果是:显示行 0 - 29 (540 总计, 查询花费 0.0072 秒)
select a.packageno,a.lotno from vp_barcode_2d_y as a left join
kw_manage as b on a.packageno = b.packageno left join stock_detail as c on
b.cust_no = concat(left(c.cust_no,5),' ',right(c.cust_no,5))where
c.stock_no = 'SU13061301011' group by a.barcode order by a.lotno,a.packageno
asc
样式如下:
== 转存表中的数据 vp_barcode_2d_y
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219001|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219002|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
|VP3.0 130219003|3207
....
//得到的结果是:显示行 0 - 29 (540 总计, 查询花费 0.0072 秒)
入库时该字段为0
出库时该字段为已出库数量
入库数量 - 出库数量 = 该批次剩余数量又
设 select * from tbl_nameid num
1 20
2 20
3 30
SELECT * , (SELECT sum( num ) FROM tbl_name WHERE id<=a.id ) as c FROM tbl_name aid num c
1 20 20
2 20 40
3 30 70则 c 列可做为出库来源的依据
如果出库包装的规模为 30
那么对应的id为:
包装1 1,2
包装2 2,3
包装3 3,后续id
id=1 20
id=2 20+20=40
id=3 20+20+30=70
$result = mysql_query($sql);
while($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
var_dump($row);
}结果:
array(4) {
["packageno"]=>
string(15) "VP3.0 130219001"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219002"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219003"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219004"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219005"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219006"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219007"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219008"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219009"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219010"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219011"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219012"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219013"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219014"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219015"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219016"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219017"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219018"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219019"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219020"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219021"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219022"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219023"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219024"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219048"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219049"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219050"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219051"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219052"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219053"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219054"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219055"
["cust_no"]=>
string(11) "23710 JE22A"
["lotno"]=>
string(4) "3207"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219107"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219108"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219109"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219110"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219111"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219112"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219113"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219114"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219115"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219116"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219117"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}
array(4) {
["packageno"]=>
string(15) "VP3.0 130219118"
["cust_no"]=>
string(11) "23703 3AW0A"
["lotno"]=>
string(4) "3218"
["count(b.lotno)"]=>
string(2) "15"
}已知stock_no为SU13061301011时的结果为195,195,这样的话怎么处理成为已知出库?SELECT stock_no, mount*snp as total FROM `stock_detail` where `stock_no` = 'SU13061301011'CREATE TABLE IF NOT EXISTS `stock_detail` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`stock_no` varchar(20) NOT NULL,
`adress` varchar(10) NOT NULL,
`arr_time` datetime NOT NULL,
`c_type` varchar(20) NOT NULL,
`pu_no` varchar(20) NOT NULL,
`cust_no` varchar(20) NOT NULL,
`mount` int(10) NOT NULL,
`snp` int(10) NOT NULL,
`c1_time` datetime NOT NULL,
`c2_time` datetime NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB;--
-- 转存表中的数据 `stock_detail`
--INSERT INTO `stock_detail` (`stock_no`, `snp`) VALUES
('SU13061301011', 195),
('SU13061301011', 195);
["stock_no"]=>
string(13) "SU13061301011"
["cust_no"]=>
string(10) "237033AW0A"
["total"]=>
string(3) "195"
}
array(3) {
["stock_no"]=>
string(13) "SU13061301011"
["cust_no"]=>
string(10) "237033AW0A"
["total"]=>
string(3) "195"
}
其实这个过程就是你最初帖子的问题,但你始终都以入库为基准,所以总是做不好
应该以出库为准:从A取n,不够再从B中取m,如此循环直到取够