首页 > 解决方案 > 按日期求和 Laravel 数据表

问题描述

在 Laravel 8 中对我的数据表进行分组时遇到问题,

这是数据,

Table: cash_in
Date        Code    Amount
2020-12-01  0001    100
2020-12-01  0001    200
2020-12-01  0002    300
2020-12-01  0002    400
2020-12-02  0001    500
2020-12-02  0002    600
2020-12-02  0002    700

我想根据日期对代码 0001 和代码 0002 进行分组并求和。

Date        0001    0002
2020-12-01  300     700
2020-12-02  500     1300

请帮助我提出这个解决方案。提前致谢。

标签: phplaraveldatedatatablessum

解决方案


尝试这个

$data = [
    [
        "Date" => "2020-12-01",
        "Code" => "0001",
        "Amount" => "100",
    ],
    [
        "Date" => "2020-12-01",
        "Code" => "0001",
        "Amount" => "200",
    ],
    [
        "Date" => "2020-12-01",
        "Code" => "0002",
        "Amount" => "300",
    ],
    [
        "Date" => "2020-12-01",
        "Code" => "0002",
        "Amount" => "400",
    ],
    [
        "Date" => "2020-12-02",
        "Code" => "0001",
        "Amount" => "500",
    ],
    [
        "Date" => "2020-12-02",
        "Code" => "0002",
        "Amount" => "500",
    ],
    [
        "Date" => "2020-12-02",
        "Code" => "0002",
        "Amount" => "700",
    ]
];

$data = collect($data);
$newData = $data->groupBy('Date')->map(function ($item, $key) {
    return [
        "date" => $key,
        "total" => $item->sum('Amount'),
        "code"=>$item[0]['Code'],
    ];
})->values();
return $newData;

推荐阅读