mysql:语句中的两个计数

dvtswwa3  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(375)

我经营一家婚纱店。我做了一张table,把新娘试穿的衣服都放在那里。我有字段,分支,型号,日期和顺序。如果要订购裙子,则“订购”将设置为1。我还有一个字段“status”,如果从这个表中删除裙子,它将被设置为2。
我有这个声明,以显示年,月,分支机构,型号和数量每一个型号已经尝试了:

SELECT count(*) as Anzahl, MONTHNAME( date ) AS Monat, YEAR( date ) AS Jahr, 
branch as Branch FROM wccrm_anprobe where status = 1 GROUP BY MONTHNAME(date), 
YEAR(date), branch ORDER BY date,branch ASC

我能做些什么来实现以下目标:我想计算字段“ordered”并将其放入我的select?我想看看,一年、一个月、一家分店卖了多少件衣服。
我试过:

SELECT count(*) as Anzahl, MONTHNAME( date ) AS Monat, YEAR( date ) AS Jahr, 
branch as Branch, ordered as Ordered FROM wccrm_anprobe where status = 1 GROUP 
BY MONTHNAME(date), 
YEAR(date), branch, ordered ORDER BY date,branch ASC

但是我没有得到正确的结果,因为我认为ordered字段只会显示一次-它不会被计数。
例如,上个月我卖出了6件衣服,但上面的陈述只显示了3件。
谢谢你的建议。
致以最诚挚的问候,
斯特凡

qacovj5a

qacovj5a1#

您可以使用条件聚合,在您的情况下,它应该如下所示:

COUNT(CASE `ordered` WHEN 1 THEN 1 ELSE NULL END) AS numberOrdered

像大多数聚合函数一样,count忽略空值。或者,可以使用sum

SUM(CASE `ordered` WHEN 1 THEN 1 ELSE 0 END) AS numberOrdered

相关问题