SELECT SUM和COUNT,FROM同一行上的不同表,PHP和MySql

时间:2017-07-24 17:23:40

标签: php mysql

我有3个桌子,交易俱乐部客户,俱乐部只能有一个推销员,每个客户只能属于一个俱乐部,客户在交易表中付款。

我试图获取所有销售员的列表,每个俱乐部的付款金额以及每个俱乐部在特定日期的付款总额。

我只得到一行,第一个推销员,以及每个人的总数,不知道如何获得每一行与每个推销员的总数。感谢您的时间。

+--------------------------------------------+
|                transactions                |
+--------------------------------------------+
| id_transaction | date | amount | client_id |
+----------------+------+--------+-----------+

+------------------------------+
|            clients           |
+------------------------------+
| id_client | name | club_name |
+-----------+------+-----------+

+-----------------------------------+
|               clubs               |
+-----------------------------------+
| id_club | name_club | name_seller |
+---------+-----------+-------------+

SELECT 
   transactions.amount,
   clients.id_client,
   clubs.club_name,
   club.name_seller,
   SUM(transactions.amount) AS sum_amount,
   COUNT(transactions.amount) AS count_amount,
   club.name_seller AS salesman
FROM transactions, members, clubs
WHERE transactions.date = '$date' 
AND clients.id_client = transactions.client_id 
AND client.club_name = clubs.name_club 


 <th>Salesman</th>
 <th>Club Name</th>
 <th>Number of Transactions</th>
 <th>Total amount</th>   

 $output.='<td>'.$row['salesman'].'</td>';
 $output.='<td>'.$row['club_name'].'</td>';
 $output.='<td>'.$row['COUNT(amount)'].'</td>';
 $output.='<td>'.$row['SUM(amount)'].'</td>';

这就是我正在尝试的,例如:

  

推销员 - 俱乐部名称 - 交易次数 - 总金额
        比尔 - TennisClub - 5 - 5000         比尔 - 高尔夫俱乐部 - 7 - 7000         Joe - Pool Cub - 2 - 2000

1 个答案:

答案 0 :(得分:0)

您必须在查询中使用分组依据语句(如果您想要基于销售员,则可以输入销售员ID)

我认为,在发布问题之前,您已更改了表结构名称。所以,我无法理解小学和初学者。外键。