Mysql 如果Excel中带VBA的SQL结果中不存在值,则在结果表中添加值

Mysql 如果Excel中带VBA的SQL结果中不存在值,则在结果表中添加值,mysql,vba,excel,Mysql,Vba,Excel,我试图通过VBA在excel中获取一个连接到MYSQL数据库的表。我的查询有效,但我想修改结果中的某些内容。现在,我得到了购买1、2、3。。。。。在每列中,取决于时间变量j。但是,对于不同的j值,没有用户购买3次或更多。我想添加一个函数,它会说:如果不存在等于3、4、5到10的购买数量,则向该值添加value=0 例如:对于j=10,我得到: 注1:31 注3:10 我想去 注1:31 nb 2:0 注3:10 nb 4:0 ......... nb 10:0 这是我的密码: For j

我试图通过VBA在excel中获取一个连接到MYSQL数据库的表。我的查询有效,但我想修改结果中的某些内容。现在,我得到了购买1、2、3。。。。。在每列中,取决于时间变量j。但是,对于不同的j值,没有用户购买3次或更多。我想添加一个函数,它会说:如果不存在等于3、4、5到10的购买数量,则向该值添加value=0

例如:对于j=10,我得到:

注1:31 注3:10

我想去

注1:31 nb 2:0 注3:10 nb 4:0 ......... nb 10:0

这是我的密码:

   For j = 1 To 30

    strSql = "SELECT COUNT(nb_purchases), nb_purchases from users" & _
     "WHERE DATEDIFF(date_added , register_date) >=" & j & " " & _
     "GROUP BY nb_purchases" & _
     "ORDER BY nb_purchases ASC ; "

    For i = 1 To 2
    Cells(i, j) = res(0, i)
    Next i
    Next j

您可能希望在mysql查询中使用
case when
,如下所示:

strSql = "SELECT COUNT(nb_purchases) as CountUsers,"+
         " (CASE WHEN (CountUsers > 2 & CountUsers <11) "+
                " THEN 0 ELSE CountUsers END) AS COUNTTOUSE, " +
        "nb_purchases from users" & _
        "WHERE DATEDIFF(date_added , register_date) >=" & j & " " & _
        "GROUP BY nb_purchases" & _
        "ORDER BY nb_purchases ASC ;
strSql=“选择COUNT(nb\u购买)作为CountUsers,”+
“(当(CountUsers>2&CountUsers=“&j&”和_
“集团按nb_采购”和_
“nb_采购ASC的订单;
从结果中使用
计数
写入excel