php - 获取当月之前的总值(value)?

标签 php mysql

我已使用下面的查询成功获取数据。

$sql2 = "Select element,
SUM(CASE WHEN Month = 'Jan' THEN total ELSE 0 END ) AS Jan,
SUM(CASE WHEN Month = 'Feb' THEN total ELSE 0 END ) AS Feb,
SUM(CASE WHEN Month = 'Mac' THEN total ELSE 0 END ) AS Mac //until december
from tbl_macscstate
group by element";
$rs2 = mysql_query($sql2);
$getRec2 = mysql_fetch_assoc($rs2);

现在,我的问题是我想从 7 月到本月增加值(value),但我不知道该怎么做。有人能指出我正确的方向吗?下面的代码是我如何在表中显示数据。

<?php while ($row = mysql_fetch_assoc($rs2)) {?>
<tr>
    <td><?php echo $row['element']; ?></div></td>   
    <?php if( $year != '2014' ){ ?>
    <?php if( 1 <= $monthID ): ?><td><?php echo $row['Jan']; ?></td><?php endif; ?>
    <?php if( 2 <= $monthID ): ?><td><?php echo $row['Feb']; ?></td><?php endif; ?>
    <?php if( 3 <= $monthID ): ?><td><?php echo $row['Mac']; ?></td><?php endif; ?>
    <?php if( 4 <= $monthID ): ?><td><?php echo $row['Apr']; ?></td><?php endif; ?>
    <?php if( 5 <= $monthID ): ?><td><?php echo $row['May']; ?></td><?php endif; ?>
    <?php if( 6 <= $monthID ): ?><td><?php echo $row['Jun']; ?></div></td><?php endif; ?>
    <?php } ?>
    <?php if( 7 <= $monthID ): ?><td><?php echo $row['Jul']; ?></td><?php endif; ?>
    <?php if( 8 <= $monthID ): ?><td><?php echo $row['Aug']; ?></td><?php endif; ?> //until Dec
    <td><div align="center" style="color:black"><?php //echo YTD; ?></td>   
</tr>                                  

最佳答案

如果我正确理解你的问题,这个函数就可以完成这项工作:

<?php    
    function getSumBetweenMonths($month1,$month2,$row)
    {           
        $m2i=array('Jan'=>1,'Feb'=>2,'Mar'=>3,'Apr'=>4,'May'=>5,'Jun'=>6,'Jul'=>7,'Aug'=>8,'Sep'=>9,'Oct'=>10,'Nov'=>11,'Dec'=>12);
        $i2m=array(1=>'Jan',2=>'Feb',3=>'Mar',4=>'Apr',5=>'May',6=>'Jun',7=>'Jul',8=>'Aug',9=>'Sep',10=>'Oct',11=>'Nov',12=>'Dec');
        $sum=0;
        $i=$m2i[$month1];
        $j=$m2i[$month2];
        if(!$i||!$j)Die("Unknown months $month1,$month2");
        for(;;)
        {
            $sum+=$row[$i2m[$i]];
            if($i==$j) return $sum;
            $i++;
            if($i>=13) $i=1;
        }
    }

    echo getSumBetweenMonths('Jul',date('M'),$row);  
?>

关于php - 获取当月之前的总值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26990777/

相关文章:

javascript - 自动增加客户数量。

php - 何时在 Zend Framework 中使用模块?

php - 在 MYSQL 中插入数据之前删除多余的字符?

php - 此 php 登录代码始终不返回任何内容

php - 编码/转义 JSON 控制字符

php - 如何实现未注册用户的观看次数统计?

javascript - 如何使导航栏元素出现或消失

mysql - 排除mysql中的很多用户

mysql - 如何在Hibernate xml文件中映射Memory(HEAP) MySql表?

MySQL合并多个表的列