Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP查询以获取日期之间每个用户的金额总和_Php_Sql Server_Database_Mysqli - Fatal编程技术网

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”,我将如何使用此代码,但将一周的开始日期从周四设置为周三?