如果在前几个月存在这一行计数1,我将如何获得数据

时间:2017-06-29 07:23:18

标签: php mysql

我的桌子是

   Month   |   Company     |
    Jan    |   Inzpect     |
    May    |   Ginebra     |
    May    |   Inzpect     |
    Jun    |   Inzpect     |

我的sql

SELECT count(DISTINCT company) as 
exist_customer FROM mirdc_jo_form 
WHERE DATE_FORMAT('2017-06-01', '%Y-%m') = DATE_FORMAT(date, '%Y-%m') 
AND company IN (SELECT company FROM mirdc_jo_form 
WHERE DATE_FORMAT(DATE_SUB('2017-06-01', INTERVAL 1 MONTH), '%Y-%m') = DATE_FORMAT(date, '%Y-%m'))

我得到了错误的数据,因为这是我每个月在php中循环它时得到的

   Month   |   existing_company  |  
    Jan    |          0          |    
    May    |          0          |     
    Jun    |          1          |

我的sql语句仅在1个月之前计算。我很难完全覆盖整行。

我的预期结果是我的sql语句将计算从当前日期到前几个月的数据如果已经输入了这个新数据,它将计为1,因为它在前几个月存在并且如果这些数据是新的并且有没有前几个月的确切数据我什么也不做。

我的预期结果是

   Month   |   existing_company  |    new_company
    Jan    |          0          |       1
    May    |          1          |       1
    Jun    |          1          |       0

jan =现有客户为0,因为Inzpect公司在前几个月没有注册,或者数据库中没有Inzpect并将其计为1,因为它是新客户

5月=现有客户是1,因为在可能有2个入口数据的时候,它是inzpect并且ginebra和inzpect已经在jan中输入了所以它将计入existing_comapny列(所有已经在前几个月注册的数据将如果上一个月有2个寄存器数据注册到本月它将被计为now_company = 2,那么所有与之前完全相同的寄存器数据将被计数)

0 个答案:

没有答案