2013-09-21 22 views
0

檢查無處不在,但找不到答案。查找(BETWEEN)選定變量中的數據總和

我有這個頁面,我使用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  

在這種情況下,如果我的開始日期爲13年1月1日,我的結束日期是15/1/13和卡號是A300 ,總訂單應該是1000

在此先感謝!

EDIT ::

這裏是sql小提琴:

http://sqlfiddle.com/#!2/ed080/9/0

+0

請,對於2次的查詢提供SQLfiddle,所以我們可以看到,什麼是錯的 – user4035

+0

假設每個'卡號'都有很多'交易日期',你想展示一下嗎? –

+0

@ 491243我只是在開始和結束日期之間顯示特定卡號所做的交易 – admiralchip

回答

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。但是,如果你想在指定範圍內calcualate訂單總,您需要將GROUP BY子句中刪除date

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 
+0

當我嘗試它時,我的頁面出現空白。 – admiralchip

+0

請提供樣品演示@ http://www.sqlfiddle.com –

+0

http://www.sqlfiddle.com/#!2/ed080/9/0 它是。它甚至沒有從2/1/13進入,並且沒有任何金額 – admiralchip