【发布时间】:2011-04-20 19:39:21
【问题描述】:
我有两个查询,具有相同的 [分组依据] 字段,但不同的(总和)计算字段。
我想要:
将 [查询 #2] [字段 3] 添加到 [查询 #1] [字段 4],对于每个 记录
创建一个新数组以便稍后检索 数据,有[A1]、[A2]、[A3]、[B4]。
但是,对于这两个,我需要知道记录的顺序完全相同。也许从第二个资源语句中“选择”记录,以通过所有 3 个键值将其连接到原始记录。
$conn_resource = db2_connect ( "*LOCAL", "", "" );
$sql1 = "SELECT [A1], [A2], [A3], SUM([A4]) FROM [MyFile] WHERE [G] > 5 GROUP BY [A1], [A2], [A3] ";
$stmt1 = db2_prepare ( $conn_resource, $sql1 );
$sql2 = "SELECT [B1], [B2], [B3], SUM([B4]) FROM [MyFile] WHERE [G] > 5 GROUP BY [B1], [B2], [B3] ";
$stmt2 = db2_prepare ( $conn_resource, $sql2 );
if (! db2_execute ( $stmt1 ) || ! db2_execute ( $stmt2 )) {
//failure
}
while ( $row = &db2_fetch_array ( $stmt1 ) ) {
$sqlStatementTwoRow = db2_fetch_array ( $stmt2 );
$row[4] = $row[3] + $sqlStatementTwoRow[4];
}
理论上,上面的例子应该可以工作,但我无法确认来自 $stmt2 的记录与 $stmt1 的顺序完全相同。
编辑 提供的答案似乎是解决方案,我越来越多地将该解决方案迁移到我的真实 SQL 语句中。
一旦我完成它,我将发布使用这个想法的完整的实时 SQL。
【问题讨论】: