Php 不同记录按月统计总计

Php 不同记录按月统计总计,php,sql,sql-server,Php,Sql,Sql Server,我有一个用户表,需要在其中运行一个报告,并显示给定年份中每个月用户被输入系统的次数。我创建了一个表,其中第一列返回不同的用户。接下来,在右边,我想显示每个月用户被输入的次数。我目前的代码只计算每个月的总数,并将所有用户的总数放入每个月。在下面的例子中,它为每个用户列出了5月7日、6月13日和7月12日。但我希望它能像下面这样显示,它每个月在哪里分解 Users May June July User1 1 2 3 User2

我有一个用户表,需要在其中运行一个报告,并显示给定年份中每个月用户被输入系统的次数。我创建了一个表,其中第一列返回不同的用户。接下来,在右边,我想显示每个月用户被输入的次数。我目前的代码只计算每个月的总数,并将所有用户的总数放入每个月。在下面的例子中,它为每个用户列出了5月7日、6月13日和7月12日。但我希望它能像下面这样显示,它每个月在哪里分解

Users    May    June    July  
User1     1       2       3     
User2     1       1       2  
User3     5       10      7   

<?php
$sql = "SELECT record,count(*) as TotalCount,

(select DISTINCT count(*) from Table1 WHERE datereceived BETWEEN '2012-05-01' AND '2012-05-31') as May,
(select DISTINCT count(*) from Table1 WHERE datereceived BETWEEN '2012-06-01' AND '2012-06-30') as June,
(select DISTINCT count(*) from Table1 WHERE datereceived BETWEEN '2012-07-01' AND '2012-07-31') as July
FROM Table1 GROUP BY record";
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql ,  $params, $options );
if( $stmt === false)
{
echo "Error in query preparation/execution.\n";
die( print_r( sqlsrv_errors(), true));
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) { 
?>  

<tr id="styling">
    <td class="style"><?php echo $row['record']; ?></td>
    <td class="style"><?php echo $row['May']; ?></td>
    <td class="style"><?php echo $row['June']; ?></td>
    <td class="style"><?php echo $row['July']; ?></td>
</tr>
<?php } ?>
5-6-7月用户
用户1 2 3
用户2 1 2
用户3 5 10 7

我认为最好按日期字段分组,而不是现在如何使用它

select DISTINCT count(*) from Table1 GROUP BY EXTRACT(MONTH FROM datereceived)

但我看不出您使用哪个字段来标识用户。您也可以尝试在该字段上分组。

您好,您可以尝试此字段

从中选择不同的fitstname、datename(月、datereceived)、count(*)
用户组按名字、日期(月、日期接收)

可以显示您的表结构吗?我使用记录字段来标识用户。当输入用户记录时,表结构是一个日期时间字段,将当前日期写入该字段、用户名(记录)字段,然后写入其他字段以获取信息。我试图查看datetime字段(datereceived),并根据其日期将其分为不同的月份。这只返回不同的用户名,但没有每个月的总数。