0

MYSQLデータベースに接続されたVBAを介してExcelでテーブルを取得しようとしています。クエリは機能しますが、結果の何かを変更したいと思います。現在、時間変数jに応じて、各列で1、2、3.....を購入したユーザーの数を取得しています。ただし、jの値が異なる場合、3回以上購入するユーザーはありません。3、4、5から10までの購入数が存在しない場合は、その値に値=0を追加するという関数を追加したいと思います。

例:j = 10の場合、次のようになります。

nb 1:31 nb 3:10

入手したい

nb 1:31 nb 2:0 nb 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
4

1 に答える 1

0

case-when-thenmysql クエリで次のように使用できます。

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 ;

COUNTTOUSE結果から使用して、Excel に書き込みます。

于 2012-11-05T16:50:44.167 に答える