我的表中有一列: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

10-07 12:37