#mysql #sql
#mysql #sql
Вопрос:
Мне нужна помощь с запросом, чтобы получить транзакцию для каждого пользователя, я работаю над запросами, все еще учусь, любая помощь будет оценена.
Приведенный ниже запрос получает то, что мне нужно для другого отчета, довольно много транзакций в день, работает хорошо:
SELECT
date_generator.date as the_date,
IFNULL(COUNT(transactions.transaction_id), 0) as count
from (
select DATE_ADD('2021-01-01', INTERVAL (@i:=@i 1)-1 DAY) as date
from information_schema.columns,(SELECT @i:=0) gen_sub
where DATE_ADD('2021-01-01',INTERVAL @i DAY) BETWEEN '2021-01-01' AND '2021-01-12'
) date_generator
left join transactions on DATE(edited) = date_generator.date
GROUP BY date
Генерирует данные:
количество дат
2021-01-01 0
2021-01-02 0
2021-01-03 0
2021-01-04 12
2021-01-05 24
2021-01-06 0
2021-01-07 11
2021-01-08 0
2021-01-09 0
2021-01-10 5
2021-01-11 8
2021-01-12 3
Моя проблема заключается в том, что теперь мне нужны те же данные, но для определенного имени пользователя … в той же таблице транзакций у меня есть имя пользователя для вызова столбца, которое генерирует транзакцию. Я играл с запросом, но безуспешно, еще раз спасибо за помощь.
Ищу, чтобы Получить… Где username = ‘Test’:
количество
дат 2021-01-01 0
2021-01-02 0
2021-01-03 0
2021-01-04 1
2021-01-05 0
2021-01-06 0
2021-01-07 1
2021-01-08 0
2021-01-09 0
2021-01-10 0
2021-01-11 1
2021-01-12 2
Ответ №1:
Покопавшись, и никаких ответов … наконец-то получил то, что нужно на другом форуме, на случай, если кому-то еще это понадобится:
ВЫБЕРИТЕ date_generator.дата как the_date, имя пользователя, IFNULL(COUNT(transactions.transaction_id), 0) как отсчет от (выберите DATE_ADD(‘2021-01-01’, ИНТЕРВАЛ (@i:=@i 1)-1 ДЕНЬ) в качестве даты из information_schema.columns,(ВЫБЕРИТЕ @i:=0) gen_sub, где DATE_ADD(‘2021-01-01’, ИНТЕРВАЛ @i ДЕНЬ) МЕЖДУ ‘2021-01-01’ И ‘2021-01-12’) date_generator оставил транзакции соединения на ДАТУ (отредактировано) = date_generator.дата И имя пользователя= ‘Test’ ГРУППА ПО дате, имени пользователя