Я имею таблицу базы данных с именем 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
. Теперь я получаю две даты из формы в формате «dd/mm/yyyy
», конвертирую ее в отметку времени UNIX и используя ее в следующем запросе. Теперь я хочу показать дату по часовой стрелке. (т. е. транзакции по каждой дате, общее количество транзакций статуса «успех», «inprocess», «fail» и «cancel») для всех дат между диапазоном, который я дал. Эти записи должны быть сгруппированы по дате транзакции. Я много пробовал получить этот результат, но не добился успеха. Для вашей справки я даю ниже моего запроса:
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)
Может ли кто-нибудь помочь мне в этом отношении? Заранее спасибо.
: Большое вам спасибо еще раз. Ваш запрос действительно сделал магию для меня. Можете ли вы мне немного помочь? В приведенном выше запросе rsults отображаются по дате. Теперь я хочу показать те же результаты в месяц, как мне его достичь? Средства, например. Я хочу показать ежемесячные результаты с января по июнь 2013 года – PHPLover
@phpLover. , , Вы можете использовать функции 'year()' и 'month()' в дате или в функции 'date_format()'. Убедитесь, что вы помещаете одни и те же вызовы в 'group by', как в' select'. –
: Спасибо за ваше предложение. Я попробовал трюк, но это не сработало. Может быть, я делаю что-то неправильно. Можете ли вы предоставить мне запрос в качестве ответа на этот вопрос. Я был бы вам очень благодарен. – PHPLover