私は以前、解決する必要のある SQL クエリを使用して、stackoverflow でユーザー JW から多大な支援を受けました。ただし、要件は彼の最初の回答から多少変更されています。
過去 30 日以内の結果を検索するクエリの代わりに、Web サイト バックエンドの管理者ユーザーに、レポートがカバーする必要がある日数を選択するオプションを提供する必要があるため、30 日は任意の数値にできます。今。
ユーザーが必要な日数を入力できるphpスクリプトとテキストエントリがあり、遡る日付x日数を計算します。この日付は変数に格納されます。他のレポートでも同じ方法を使用していますが、非常にうまく機能しています。
JWが作成した元のクエリは次のとおりです。
SELECT c.customers_id
FROM customers c
INNER JOIN customers_info ci
ON c.customers_id = ci.customers_info_id
LEFT JOIN codes_redeem_history pc
ON c.customers_id = pc.customer_id
WHERE pc.customer_id IS NULL
GROUP BY c.customers_email_address
HAVING MAX(ci.customers_info_date_of_last_logon) <= subdate(now(),INTERVAL 30 DAY)
次の行に沿って何かを使用する必要があります。
WHERE ci.customers_info_date_of_last_logon >= '" . $ndate . "'
SQL構文エラーが発生するため、HAVING MAXセクションの代わりにそれを配置することはできません
私は試しました:
WHERE pc.customer_id IS NULL
AND WHERE ci.customers_info_date_of_last_logon >= '" . $ndate . "'
GROUP BY c.customers_email_address
しかし、うまくいきませんでした。参考までに、10 日レポートを選択すると、$ndate は「20130301」になります。
ありがとう、スティーブ