2011-12-28 51 views
3

如何在单个查询中完成以下查询并按照下面的方式获取结果?如何在单个查询中完成多个查询

// Begining of January 

$ob = mysql_query(" SELECT SUM(salary_amount) AS total FROM teacherexpense WHERE month(disburse_date)='01' AND year(disburse_date)='$year' "); 
$nt = mysql_fetch_assoc($ob); 
$salaryamount= $nt['total']; 


$ob = mysql_query(" SELECT SUM(other_expense_amount) AS expenseamount FROM otherexpense WHERE month(other_expense_date)='01' AND year(other_expense_date)='$year' "); 
$nt = mysql_fetch_assoc($ob); 
$expenseamount= $nt['expenseamount']; 

$jk = mysql_query(" SELECT SUM(amountpaid) AS revenue FROM studentpayment1 WHERE month(received_date)='01' AND year(received_date)='$year' "); 
$t = mysql_fetch_assoc($jk); 
$revenue= $t['revenue']; 

$ob = mysql_query(" SELECT SUM(other_earning_amount) AS otherearningamount FROM otherearning WHERE month(other_earning_date)='01' AND year(other_earning_date)='$year' "); 
$nt = mysql_fetch_assoc($ob); 
$otherearningamount= $nt['otherearningamount']; 


$January= ($revenue+$otherearningamount)-($salaryamount+$expenseamount); 
// End of January 
+1

你可以使用'UNION',每一行都将代表不同的查询。 –

回答

1

将其存入存储过程? PHP的数据库驱动程序不会让你运行多个查询,出于安全原因。

0

你可以使用MySQL UNION - 但你必须遍历结果集,因为在这种情况下,你会得到4条记录,而不是一个/语句组

1

您是否尝试过mysqli的驱动程序,而不是MySQL的?

看看:mysqli_multi_query

执行它们由分号连接起来的一个或多个查询。

1
SELECT 'withdrawals' t, SUM(amount) sum 
FROM withdrawals 
UNION 
SELECT 'statement' t, SUM(amount) sum 
FROM statement 

enter image description here

while($row = mysql_fetch_assoc($result)) 
{ 
    $total[$row['t']] = $row['sum']; 
} 

echo $total['withdrawals']; # 100 
echo $total['statement']; # 624.x