PHP查询以获取日期之间每个用户的金额总和
我有一个数据库设置,它保存了一个销售人员的数据,这个销售人员已经收集了一定数量的钱,并且在那里还有他的佣金PHP查询以获取日期之间每个用户的金额总和,php,sql-server,database,mysqli,Php,Sql Server,Database,Mysqli,我有一个数据库设置,它保存了一个销售人员的数据,这个销售人员已经收集了一定数量的钱,并且在那里还有他的佣金 Example: Date Name Amount Sold Commission Earned 2013-2-3 John A 100.00 20.00 2013-2-3 Amy W 200.00 40.00 2013-2-3 John A 230.00 46.0
Example:
Date Name Amount Sold Commission Earned
2013-2-3 John A 100.00 20.00
2013-2-3 Amy W 200.00 40.00
2013-2-3 John A 230.00 46.00
2013-2-2 John A 300.00 60.00
2013-2-2 Bill B 400.00 80.00
Etc....
我正试图通过一周的佣金收入来展示顶级销售人员。我需要以某种方式查询数据库,找到这一周的所有佣金,然后对它们进行分组,合计总收入,并显示这一周收入最高的人
这是我到目前为止所做的,它是有效的,但它显示了上周的所有收入。我只是不知道如何根据他们的名字将他们分组,然后将佣金加在一起,然后从赚得最多的销售人员那里显示出来
require_once('connectvars.php');
$dbc = mysqli_connect(CDB_HOST, CDB_USER, CDB_PASSWORD, CDB_NAME);
// GET COLLECTOR INFO
$query = "SELECT * FROM commissioninfo WHERE thedate >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY
AND thedate < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY ORDER BY amountoffeeearned DESC";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($result)) {
echo '<tr>';
echo '<td>' . $row['salesperson'] . '</td>';
echo ' <td>' . $row['amountoffeeearned'] . '</td>';
echo '</tr>';
}
mysqli_close($dbc);
require_once('connectvars.php');
$dbc=mysqli_connect(CDB_主机、CDB_用户、CDB_密码、CDB_名称);
//获取收集器信息
$query=“从commissioninfo中选择*,其中日期>=curdate()-每周间隔日(curdate())+6天
以及日期
只需将名称
添加到分组依据
中,然后Sum
销售金额您将获得每个用户的销售金额
的总和。像这样的
SELECT NAME,
Sum(`Amount Sold`) sum_amount ,
sum(`commission earned`) sum_comm
FROM commissioninfo
WHERE thedate >= curdate() - interval dayofweek(curdate())+6 day
AND thedate < curdate() - interval dayofweek(curdate())-1 day
GROUP BY NAME
ORDER BY sum_amount DESC
选择名称,
Sum(`Amount sall`)Sum\u Amount,
金额(`赚取的佣金')金额
来自commissioninfo
其中日期>=curdate()-每周间隔日(curdate())+6天
日期
更新:
SELECT salesperson,
Sum(amountcollected)
FROM commissioninfo
WHERE thedate >= Curdate() - INTERVAL Dayofweek(Curdate())+6 day
AND thedate < Curdate() - INTERVAL Dayofweek(Curdate())-1 day
GROUP BY salesperson
选择销售人员,
金额(已收取金额)
来自commissioninfo
其中日期>=Curdate()-每周间隔日(Curdate())+6天
日期
在Group By和SUM([赚取的佣金])中按描述顺序添加姓名
或
试试这个:
SELECT Name,
SUM([Amount Sold]) as WeekAmountSold,
SUM([Commission Earned]) as WeekCommissionEarned
FROM commissioninfo
WHERE Date >= DATE_ADD(curdate(), INTERVAL(1-DAYOFWEEK(curdate())-7) DAY)
AND Date < DATE_ADD(curdate(), INTERVAL(1-DAYOFWEEK(curdate())) DAY)
GROUP BY Name
ORDER BY SUM([Commission Earned]) DESC
选择名称,
作为Weekamountsaled的金额([出售金额]),
一周内收到的佣金总额([赚取的佣金])
来自commissioninfo
其中Date>=Date\u ADD(curdate(),INTERVAL(1-DAYOFWEEK(curdate())-7)天)
和日期<日期\添加(curdate(),间隔(1-DAYOFWEEK(curdate())天)
按名称分组
订单金额([赚取佣金])说明
好的,这就是我尝试过的,它将所有的名字完美地组合在一起,但是在显示总和的地方,他们都说0。从commissioninfo中选择salesperson,SUM('amountcollected')作为'totalsum',其中Date>=curdate()-每周间隔日(curdate())+6天,Date销售人员在该期间都有amountcollected
吗让我快速检查即使我在PHPMyAdmin中使用此查询,我在金额SELECT collector,SUM('amountcollected')中得到0作为commissioninfo GROUP BY collector ORDER BY totalsum的“totalsum”,我将如何使用此代码,但将一周的开始日期从周四设置为周三?