到处检查但我找不到答案。
我有这个页面,我使用INNER JOIN将两个表连接在一起,获取它们的值并显示它们。我有这种形式,我用来获取变量(例如开始日期和结束日期和卡号),这些变量将作为从表中调用值的标准。我能够在开始日期(例如1/1/13)和结束日期(例如15/1/13)之间获得由特定卡号(例如A300)发布的值。我现在的问题是我想在开始日期和结束日期之间添加列中的值(比如说它叫做ORDER)。
这是我到目前为止所拥有的:
$sql="SELECT transaction.date, transaction.card_number, orders.order, orders.details FROM transaction INNER JOIN orders USING (transaction_id) WHERE date BETWEEN '$begindate' AND '$enddate' AND card_number='$cardnumber'";
$result=mysqli_query($database,$sql);
$sum="SELECT SUM(order) WHERE date BETWEEN '$begindate' AND '$enddate' AND card_number = '$cardnumber'";
$sumresult=mysqli_query($database,$sum) or die(mysql_error());
$sumrow=mysqli_fetch_array($sumresult);
当我试图回应总和时,它不起作用。有什么帮助吗?
这是我想要的:
date | card number | order
25/12/12 | A025 | 550
1/1/13 | A300 | 400
3/1/13 | A300 | 600
20/1/13 | A300 | 250
在这种情况下,如果我的开始日期是1/1/13且我的结束日期是15/1/13且卡号是A300,则总订单应为1000
提前致谢!
编辑::
这是sql小提琴:
答案 0 :(得分:0)
SELECT DATE(transaction.date) date,
transaction.card_number,
SUM(orders.order) totalSum
FROM transaction
INNER JOIN orders
USING (transaction_id)
WHERE date BETWEEN '$begindate' AND '$enddate' AND
card_number='$cardnumber'
GROUP BY DATE(transaction.date), transaction.card_number
上面的查询将显示自date
和card_number
对记录进行分组以来每天的订单总量。但是,如果您想要计算指定范围内的总订单,则需要删除date
子句中的GROUP BY
,
SELECT transaction.card_number,
SUM(orders.order) totalSum
FROM transaction
INNER JOIN orders
USING (transaction_id)
WHERE date BETWEEN '$begindate' AND '$enddate' AND
card_number='$cardnumber'
GROUP BY transaction.card_number