首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉勒维尔:如何计算会员数量与地位和购买的套餐

拉勒维尔:如何计算会员数量与地位和购买的套餐
EN

Stack Overflow用户
提问于 2022-03-29 08:46:02
回答 1查看 118关注 0票数 0

如何计算会员人数与地位和购买的一揽子?

代码语言:javascript
复制
|                              Membership Status       |
|    Package Type    | Pending | Active | Cancellation |
| ------------------ | ------- | ------ | ------------ |
| Pearl Premier Full |    5    |   10   |       2      |
| Pearl Premier Odd  |    1    |   7    |       0      |
| Pearl Premier Even |    0    |   3    |       0      |

这是我的成员表:

代码语言:javascript
复制
| id | status  | package_id |
| -- | ------- | ---------- | 
| 1  | Active  |      3     |
| 2  | Pending |      1     |
代码语言:javascript
复制
public function package()
{
    return $this->belongsTo('App\Models\Package');
}

怎么算不。(团购套餐是旅游套餐,每个会员将购买一个套餐)

代码语言:javascript
复制
$data = \DB::table('members')->select(\DB::raw(
            'COUNT(CASE status WHEN "Pending" THEN 1 ELSE NULL END) AS pending,
            COUNT(CASE status WHEN "Active" THEN 1 ELSE NULL END) AS active,
            COUNT(CASE status WHEN "Cancellation" THEN 1 ELSE NULL END) AS cancelled'
        ))->get();
EN

回答 1

Stack Overflow用户

发布于 2022-03-29 09:25:11

我不知道您所说的“和购买的包”是什么意思,但是如果您想用“是否”或“case条件”计数,可以将COUNT更改为SUM,并且必须对查询进行分组。

代码语言:javascript
复制
$data = \DB::table('members')->select(\DB::raw(
    'SUM(CASE status WHEN "Pending" THEN 1 ELSE 0 END) AS pending,
    SUM(CASE status WHEN "Active" THEN 1 ELSE 0 END) AS active,
    SUM(CASE status WHEN "Cancellation" THEN 1 ELSE 0 END) AS cancelled'
))->groupBy(colomn)->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71659036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档