Вы можете создать небольшой запрос, чтобы получить 10 цифр:
SELECT DISTINCT Abs([id] Mod 10) AS N
FROM MSysObjects;
Сохранить это как Десять и использовать его дважды в другом запросе:
SELECT TimeSerial([Ten_0].[N]+[Ten_1].[N]*10,0,0) AS [Hour]
FROM Ten AS Ten_0, Ten AS Ten_1
WHERE ((([Ten_0].[N]+[Ten_1].[N]*10)<24))
ORDER BY TimeSerial([Ten_0].[N]+[Ten_1].[N]*10,0,0);
Чтобы вернуть целочисленный час (в соответствии с вашим запросом), используйте этот вариант:
SELECT [Ten_0].[N]+[Ten_1].[N]*10 AS [Hour]
FROM Ten AS Ten_0, Ten AS Ten_1
WHERE ((([Ten_0].[N]+[Ten_1].[N]*10)<24))
ORDER BY TimeSerial([Ten_0].[N]+[Ten_1].[N]*10,0,0);
Теперь либо измените это, чтобы включить ваш исходный запрос, либо используйте его в третьем запросе, где вы создаете внешнее объединениемежду часом в запросе выше и часом вашего исходного запроса.Это может быть так:
SELECT HoursOneDay.Hour, YourQuery.Amount
FROM HoursOneDay
LEFT JOIN YourQuery ON HoursOneDay.Hour = YourQuery.Hour;
Поле Сумма будет равно Нуль для тех записей без часов.Либо примените Nz , либо установите Формат , где отображаются значения.