php - Codeigniter MYSQL 数据减去 date2 中的 date1 数据

标签 php mysql sql codeigniter

这是我的 Codeigniter 项目,我制作了一个书店功能,它计算每个条目中图书的进出量和销售量,然后减去售价,并给出我目前每本书的数量。
输入“0”=我收到的金额
否则就是我花的钱
我现在想要做的是我想获取我在 date1 和 date2 之间收到的总金额,它应该类似于 date1 的“get_book_amount” -(减去)来自 date2 的“get_book_amount”。
等式是这样的:

On Date1 total amount that I received is 100, on Date2 it's 300. So the total amount that increased during that time is "200" which is the number I want to get.


我怎样才能做到这一点?
public function bookshop($date1,$date2)
{

    $total_books       = 0;
    $books      = '';

    $this->db->select("*");
    $this->db->from('books_s');
    $this->db->where(['books_s.type' => 'Fantasy']);
    $this->db->where(['books_s.stock' => 'Yes']);
    $query = $this->db->get();
    if($query->num_rows() > 0)
    {
        $count_books =  $query->result();
        if($count_books != NULL)
        {
            foreach ($count_books as $single_book) 
            {
                $getamount =  $this->get_book_amount($single_book->id,$date1,$date2);

                if($getamount > 0)
                {
                    $amt = $getamount;
                }
                else
                {
                    $amt    = -($getamount);
                }
                 $total_books = $total_books+$amt;

                $books .= '<tr><td><h4>'.$single_book->name.'</h4></td>
                            <td style="text-align:right" ><h4>'.$amt.'</h4></td></tr>';

            }
                $books .= '<tr"><td ><h4><i>Total Current Assets</i></h4></td><td style="text-align:right;" ><h4><i>'.$total_books.'</i></h4></td></tr>';
        }
    }

}

//USED TO COUNT SINGLE BOOK AMOUNT
public function get_book_amount($warehouse_id,$date1,$date2)
{
    $count_total_amount = 0;
    $this->db->select("bookentry.id as transaction_id,bookentry.date,bookentry.naration,book_stock_entry.*");
    $this->db->from('book_stock_entry');
    $this->db->join('bookentry', 'bookentry.id = book_stock_entry.parent_id');
    $this->db->where('book_stock_entry.warehouse', $warehouse_id);
    $this->db->where('bookentry.date >=', $date1);
    $this->db->where('bookentry.date <=', $date2);

    $query = $this->db->get();
    if ($query->num_rows() > 0)
    {
        $count_books =  $query->result();
        $count_total_amount = 0;
        if($count_books != NULL)
        {
            foreach ($count_books as $single_book) 
            {   

                    if($single_book->type == 0)
                    {
                       $count_total_amount = $count_total_amount + $single_book->getamount;
                    }
                    else 
                    {
                        $count_total_amount = $count_total_amount - $single_book->getamount;   
                    } 
                    
            }
        }
        
    }

    if($count_total_amount == 0)
    {
        $count_total_amount  = NULL;
    }
    else
    {
        $count_total_amount = number_format($count_total_amount,'3','.','');
    }
    
    return $count_total_amount;
    
}

最佳答案

我认为最好做两个单独的查询然后计算。
创建模型方法调用“get_book_amount_until_date”
首先使用您的日期 1 调用该方法并将其保存在 var 中。
第二次使用您的日期 2 调用该方法并将其保存在另一个变量中。
现在做:
总计 = Results_date_2 - Results_date_1

关于php - Codeigniter MYSQL 数据减去 date2 中的 date1 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66465142/

相关文章:

sql - 如何从pl sql过程运行sql脚本

php - 使用 php 导出的文本文件不会更新

PHPMYADMIN ,,处理请求时出错 错误代码 : 200 Error text: OK

HTML 对比 SHTML 对比 PHTML

php - 将权重纳入 5 星投票系统?

php - 将MySQL结果保存到php多维数组(时间表)

mysql - 使用多对多相同类型关系表排除 SELECT 上的相似行

SQL 逗号分隔列 => 行然后总计?

mysql - 检索最近 2 周记录的 SQL 查询

mysql - 如何从大型 MySql 数据库转储部分备份?