user_transaction
次のような構造のデータベース テーブルがあります。
transaction_id mediumint(6) UNSIGNED (PK)
transaction_no varchar(55)
transaction_cc_avenue_no varchar(55)
transaction_card_category varchar(100)
transaction_user_id varchar(32)
transaction_user_name varchar(255)
transaction_user_email_id varchar(255)
transaction_deal_code varchar(10)
transaction_dc_id smallint(4)
transaction_amount float(10,2)
transaction_discount float(10,2)
transaction_total_amount float(10,2)
transaction_data_assign enum('0', '1')
transaction_status enum('success', 'inprocess', 'fail', 'cancelled')
transaction_date bigint(12)
transaction_update_date bigint(12)
transaction_update_user_id varchar(32)
列に日付を格納するために UNIX タイムスタンプ値を使用していますtransaction_date
。ここで、フォームから ' ' 形式で 2 つの日付を取得しdd/mm/yyyy
、それを UNIX タイムスタンプに変換して、次のクエリで使用しています。ここで、日付ごとの番号を表示したいと思います。指定した範囲内のすべての日付について、さまざまな transaction_status のトランザクションの数 (つまり、各日付で発生したトランザクションの総数、ステータスが「成功」、「処理中」、「失敗」、および「キャンセル」のトランザクションの総数)。これらのレコードは、取引日ごとにグループ化する必要があります。この結果を得るために多くのことを試みましたが、成功することはありませんでした。ご参考までに、以下にクエリを示します。
SELECT COUNT(*) `total count`, SUM(transaction_status = 'success') `success`, SUM(transaction_status = 'inprocess') `inprocess`, SUM(transaction_status = 'fail') `fail`, SUM(transaction_status = 'cancelled') `cancelled` FROM user_transaction WHERE transaction_date >= '1325376000' AND transaction_date <= '1338422400' GROUP BY FROM_UNIXTIME(transaction_date)
この点で誰かが私を助けることができますか? 前もって感謝します。