我的表中有一列:tbl_customers
,用于将客户记录区分为LEAD还是CUS。
该列只是:recordtype
,带有char(1)。我用C或L填充它。
显然,C =客户,而L =潜在客户。
我想运行一个按创建记录的日期进行分组的查询,因此我有一列称为:datecreated
。
这是我对分组感到困惑的地方。
我想在一个特定的日期或日期范围内显示结果(在一个查询中),客户数量和潜在客户数量。我成功地仅提取了recordtype
:C或recordtype
:L的数字,但这需要2个查询。
这是我到目前为止的内容:
SELECT COUNT(customerid) AS `count`, datecreated
FROM `tbl_customers`
WHERE `datecreated` BETWEEN '$startdate."' AND '".$enddate."'
AND `recordtype` = 'C'
GROUP BY `datecreated` ASC
正如预期的那样,这将显示2列(客户记录数和
datecreated
)。有没有一种方法可以在一个查询中同时显示这两个查询,同时仍按
datecreated
列进行分组? 最佳答案
SELECT COUNT(customerid) AS `count`,
datecreated,
SUM(`recordtype` = 'C') AS CountOfC,
SUM(`recordtype` = 'L') AS CountOfL
FROM `tbl_customers`
WHERE `datecreated` BETWEEN '$startdate."' AND '".$enddate."'
GROUP BY `datecreated` ASC
见Is it possible to count two columns in the same query