Вот ответ, который я подозреваю, поможет.Я создаю временную таблицу, чтобы дать вам список дат (который я вставляю, используя цикл с датой начала и окончания. Счетчик должен начинаться с 0, потому что вы хотите включить саму дату начала).* Затем я просто присоединяю DateList к таблице Wins, чтобы получить список всех дат в диапазоне, пользователей и их посещений в эти даты.Я не тестировал его, но подозреваю, что код близок к тому, что вам нужно.
DECLARE Counter INT DEFAULT 0
DECLARE NumDays INT DEFAULT DATEDIFF(StartDate, EndDate)
CREATE TEMPORARY TABLE DateList
(
[Date] DATETIME
)
WHILE Counter <= NumDays
INSERT INTO DateList ([Date]) VALUES (DATE_ADD(StartDate, INTERVAL Counter Day))
SET Counter = Counter + 1
END WHILE
SELECT
[User]
,COUNT(User) AS Wins
,DateList.[Date] AS [Date]
FROM
DateList LEFT JOIN Wins ON Wins.[Date] = DateList.[Date]
WHERE
DateList.[Date] BETWEEN StartDate AND EndDate
GROUP BY
[User]
,DateList.[Date]
ORDER BY
DateList.[Date]
Редактировать: я внес некоторые изменения в свои объединения и счетчик.Я протестировал версию MSSQL, и она отлично работает.