名称Table
*A1 (代号EX:L001)
A2 (产品中文名)
A3 (产品英文名)交易Table
*B1 (代号EX:L001)
B2 (数量)
B3 (日期)类型Table
*C1 (代号EX:L001)
*C2 (类型 A,B,C,D)說明Table
*D1 (类型 A,B,C,D)
D2 (类型 A,B,C,D的解释)
*A1 (代号EX:L001)
A2 (产品中文名)
A3 (产品英文名)交易Table
*B1 (代号EX:L001)
B2 (数量)
B3 (日期)类型Table
*C1 (代号EX:L001)
*C2 (类型 A,B,C,D)說明Table
*D1 (类型 A,B,C,D)
D2 (类型 A,B,C,D的解释)
名称table:nameselect sum(count(1)) from
假设:
名称table:name
交易Table:exchange
类型Table:type
說明Table:description
数据库为oracle 9i.(8i请把case when 换为decode)select b1,sum(case when type.c2='A' b2 then null end) countA,sum(case when type.c2='B' b2 then null end) countB,sum(case when type.c2='C' b2 then null end) countC,sum(case when type.c2='D' b2 then null end) countD,C2 from exchange,type where exchange.b1=type.c1 and exchange.b1 = vCount.B1 group by exchange.b1
array("L001", 1, "A"),
array("L001", 2, "B"),
array("L002", 5, "C"),
array("L003", 6, "D"),
array("L004", 9, "A"),
array("L004", 5, "D"),
);$out = array();
foreach($ar as $v)
$out[$v[0]][$v[2]] = $v[1];echo "<table><tr><td>名称</td><td>A数量</td><td>B数量</td><td>C数量</td><td>D数量</td></tr>";
foreach($out as $k=>$v)
echo "<tr><td>$k</td><td>$v[A]</td><td>$v[B]</td><td>$v[C]</td><td>$v[D]</td></tr>";
echo "</table>";
感谢前辈提供的方法我等会试试,但是我还是想不透像底下这样的状况
该如何解决?用SQL就能解决吗?还是要到程序中处理?
MB_TABLE (产品数据)
MB001 MB002 MB003 MB004
品号 产品一 规格一 单位
L30001 AA1 AA2 EA
L30002 BB1 BB2 EA
L30003 CC1 CC2 EA
L30004 DD1 DD2 EAMC_TABLE (库存资料)
MC001 MC002
品号 库存数
L30001 100
L30002 200
L30003 300LA_TABLE (交易数据)
LA001 LA002 LA003 LA004 LA005
品号 交易日 交易状态 交易数量 地点
L30001 20040801 -1 10 1
L30002 20040802 1 20 2
L30003 20040803 -1 30 3
L30004 20040804 1 40 1
L30004 20040805 -1 50 1
L30001 20040806 1 60 3
PS:交易状态 -1=销货 1=进货
SELECT 得到的结果品号 产品 规格 交易日 交易状态 交易数量 地点 库存数
L30001 AA1 AA2 20040801 -1 10 1 100
L30001 AA1 AA2 20040806 1 60 3 100
L30002 BB1 BB2 20040802 1 20 2 200
L30003 CC1 CC2 20040803 -1 30 3 300
你可以将符合条件的记录都取出,将值并入一个数组里,然后操作这个数组来得到
你所需要的数据,请仔细看一下唠叨老大给你的代码,他的中心思想就是这样,不过
是把取得符合条件的记录的过程省了
array("L001", 1, "A"),
array("L001", 2, "B"),
array("L002", 5, "C"),
array("L003", 6, "D"),
array("L004", 9, "A"),
array("L004", 5, "D"),
);OK!!那么请教我该如何将SELECT值带入数组中呢?? do {
$ar = array(
array($row['品号'], $row['库存量'], $row['类型’]),
);
}while ($row= mssql_fetch_assoc($query)); 还是
$ar = array(
do {
array($row['品号'], $row['库存量'], $row['类型’]),
}while ($row= mssql_fetch_assoc($query));
);
不行!!请教前辈了…
while ($row= mssql_fetch_assoc($query)) {
$out[$row['品号']][$row['类型']] = $row['库存量'];
}
while ($row_dserp= mssql_fetch_assoc($query))
{
$out[$row_dserp['品号']][$row_dserp['入出库'].$row_dserp['异动别']]+=$row_dserp['异动数量'];
$out[$row_dserp['品号']][MB002]=$row_dserp['品名'];
$out[$row_dserp['品号']][MB003]=$row_dserp['规格'];
$out[$row_dserp['品号']][MB004]=$row_dserp['库存单位'];
$out[$row_dserp['品号']][MC002]=$row_dserp['库别名称'];
$out[$row_dserp['品号']][MC007]=$row_dserp['库存量'];
}我这样写会不会笨了点