У меня есть таблица базы данных с именем 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 Timestamp для хранения дат в столбце transaction_date
. Теперь я хочу отображать месячный номер нет. транзакций с разным статусом_транзакции (т. е. общее количество транзакций, выполненных в каждую дату, общее количество транзакций со статусом «успешно», «в процессе», «сбой» и «отменено») для всех дат транзакций, представленных в таблице. Эти записи должны быть сгруппированы по месяцам. Я много пробовал, чтобы получить этот результат, но не добился никакого успеха. Для справки я даю ниже мой запрос:
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 GROUP BY FROM_UNIXTIME(transaction_date)
Может ли кто-нибудь помочь мне в этом отношении? Заранее спасибо.
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 GROUP BY FROM_UNIXTIME (дата_транзакции) - person PHPLover   schedule 12.07.2013