0

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)

この点で誰かが私を助けることができますか? 前もって感謝します。

4

1 に答える 1