如何在PHP/MYSQL中通过分组在单个查询中计算两种不同类型的值
我想在“新建”和“续订”类别下显示一个列表,其中包含“新建”和“续订”的单独合计计算。还需要总计显示。如何在PHP/MYSQL中通过分组在单个查询中计算两种不同类型的值,php,mysql,sql,Php,Mysql,Sql,我想在“新建”和“续订”类别下显示一个列表,其中包含“新建”和“续订”的单独合计计算。还需要总计显示。 这里是MySql查询 SELECT * FROM motor WHERE DATE_FORMAT(date, '%Y %m') = DATE_FORMAT('$selected_year-$selected_month-01', '%Y %m') ORDER BY isnew ASC, date ASC 我已将“新建”和“续订”分开,但无法计算列的总和。 下面是PHP代码 <?
这里是MySql查询
SELECT * FROM motor WHERE DATE_FORMAT(date, '%Y %m') = DATE_FORMAT('$selected_year-$selected_month-01', '%Y %m') ORDER BY isnew ASC, date ASC
我已将“新建”和“续订”分开,但无法计算列的总和。下面是PHP代码
<?php
if (empty($selected_m_q)){
echo "<tr><td colspan='7'>$message</td></tr>";
}else {
$previous_staus = "";
$type = "";
while ($current_m_data = mysql_fetch_assoc($selected_m_q)){
//var_dump ($current_m_data);
$status = $current_m_data['isnew'];
if ($status != $previous_staus){
if ($status == 1){$type="New";}
if ($status == 2){$type="Renew";}
echo "<tr><td colspan='7'>status : $type</td></tr>";
$previous_staus = $status;
}
?>
<tr>
<td><?php echo $current_m_data['date']; ?></td>
<td><?php echo $current_m_data['policy_no']; ?></td>
<td><?php echo $current_m_data['vnumber']; ?></td>
<td><?php echo $current_m_data['name']; ?></td>
<td align="right"><?php echo $current_m_data['gpremium']; ?></td>
<td align="right"><?php echo $current_m_data['premium']; ?></td>
<td><a href="edit-data-m.php?id=<?php echo $current_m_data['id']; ?>">Edit</a> |
<!--<input type="button" id="<?php //echo $current_m_data[id]; ?>" class="delete" value="Delete" >-->
<a href="#" id="<?php echo $current_m_data['id']; ?>" class="delete">Delete</a>
</td>
</tr>
<?php
}
}
?>
|
我想做的是在“新建”和“续订”下显示“高级”列的总数。底部应显示新增和更新的总数。有人能帮我吗 表中有以下列
id
,
日期
,
政策编号
,
vnumber
,
名称
,
地址
,
预期值
,
gpremium
,
premium
,
联系方式详情
,
isnew
我试过计算,但只有我能得到新的总数
我的要求如下(显示在表格中)
新增新状态的数据行很少
新的保险费字段总数
续订
“续订”状态下的数据行很少
要续订的“特优”字段总数
然后是总计
如果我在这里写得不好,我很抱歉。这是我的第一个循环。在您的循环中,您只需对总数进行连续计数
<?php
if (empty($selected_m_q)){
echo "<tr><td colspan='7'>$message</td></tr>";
}else {
>>>> $previous_status = 1;
$type = "";
>>>> $subTotal = 0;
>>>> $grandTotal = 0;
while ($current_m_data = mysql_fetch_assoc($selected_m_q)){
//var_dump ($current_m_data);
$status = $current_m_data['isnew'];
if ($status != $previous_staus){
>>>>>
?>
<tr> <td></td><td></td><td></td><td></td>
<td><?= $subTotal ?></td>
<td></td><td></td><td></td>
</tr>
<?php
$subTotal = 0;
<<<<<
if ($status == 1){$type="New";}
if ($status == 2){$type="Renew";}
echo "<tr><td colspan='7'>status : $type</td></tr>";
$previous_staus = $status;
}
>>>> $subTotal += $current_m_data['premium'];
>>>> $grandTotal += $current_m_data['premium'];
?>
<tr>
<td><?php echo $current_m_data['date']; ?></td>
<td><?php echo $current_m_data['policy_no']; ?></td>
<td><?php echo $current_m_data['vnumber']; ?></td>
<td><?php echo $current_m_data['name']; ?></td>
<td align="right"><?php echo $current_m_data['gpremium']; ?></td>
<td align="right"><?php echo $current_m_data['premium']; ?></td>
<td><a href="edit-data-m.php?id=<?php echo $current_m_data['id']; ?>">Edit</a> |
<!--<input type="button" id="<?php //echo $current_m_data[id]; ?>" class="delete" value="Delete" >-->
<a href="#" id="<?php echo $current_m_data['id']; ?>" class="delete">Delete</a>
</td>
</tr>
<?php
}
?>
<tr> <td></td><td></td><td></td><td></td>
<td><?= $grandTotal ?></td>
<td></td><td></td><td></td>
</tr>
<?php
}
?>
|
你能发布表格定义吗?我需要在评论中显示这样的新内容-----数据行数据行-----新总计-----更新-----数据行数据行-----更新总计========================================总计,恐怕格式不太正确。。。你能在答案中加上格式吗?谢谢,从你的问题更新中,我更新了答案:)谢谢@Jimbo的帮助。这个修改对我来说很有效。但我做了一些小的修改来显示更新部分的小计。它没有显示为替换为您的代码。我在更新周期中对if语句进行了调整。再次感谢:)