2013-01-06 49 views
0

需要幫助編寫數據庫函數。我想根據註冊日期跟蹤每月會員訂單的總成本。因此,如果有人在月中註冊,該功能應在其註冊日期之後添加30天,並將該期間的銷售額與數據庫中的銷售額相加。然後顯示在用戶頁面上。使用mysql函數(現在不是PDO或mysqli)。根據註冊日期每月更新數據庫總和

喜歡的東西:

<?php 
    $query = ("SELECT SUM(cost) FROM memberOrders WHERE 
       memberNumber='$memberNumber' GROUP BY signupdate+30days"); 
?> 

但它不能僅僅30天... ...它應該是+30,+60,+90 ...這是我卡上的部分。謝謝!

+0

請問您是否可以出示您的餐桌,這是您可以提供的最少的信息;) – bonCodigo

回答

0

計算PHP的開始/結束日期和使用子查詢:

SELECT SUM(cost) FROM 
     (Select cost, membernumber from memberOrders WHERE 
     memberNumber='$memberNumber' and date >= '$startdate' and date <= '$enddate' 
     GROUP BY substr(date, 7)) 
GRoup by membernumber 
+0

請您介紹一下功能嗎?據我所知,你要我指定開始和結束日期。開始是某人註冊的日期...結束日期是......無窮大。這是我遇到的問題,因爲沒有結束日期......我只是希望數據庫添加一個月並從那裏檢查 – denikov

+0

如果您想無限期地運行查詢,上述查詢將不起作用。我的建議是重新考慮數據庫模型以滿足您的需求。 – Ralf

0

假設你同時在MemberOrders的註冊日期,訂單日期,下面將返回所有個月的訂單:

SELECT datediff(orderdate, signupdate, interval month) as MonthsAfter, 
     SUM(cost) as MonthCost 
FROM memberOrders 
WHERE memberNumber='$memberNumber' 
GROUP BY datediff(orderdate, signupdate, interval month) 

如果你有30天的所有月份,你可以這樣做:

​​

注意:這兩個都在註冊後的第一個月分配「0」。如果您想從1開始,請添加+1

相關問題