Классический запрос.
Задача: сформировать таблицу периода в запросе, так, чтобы были записи для каждого дня, без пропусков.
Комментарий к запросу:
- Создаем временную таблицу “ВТ_Цифры”, в которой будет 10 строк с цифрами от 0 до 9
- Создаем временную таблицу “ВТ_Числа” – здесь буду числа от 0 до 9999 (если вам требуется меньший или больший диапазон, то запрос легко изменяется)
- Создаем таблицу с датами от “&ДатаНачала” по “&ДатаОкончания” используя функцию “ДобавитьКДате”
ВЫБРАТЬ 0 КАК Цифра ПОМЕСТИТЬ ВТ_Цифры ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Цифры1.Цифра + 10 * ВТ_Цифры2.Цифра + 100 * ВТ_Цифры3.Цифра + 1000 * ВТ_Цифры4.Цифра КАК ПолеЧисло ПОМЕСТИТЬ ВТ_Числа ИЗ ВТ_Цифры КАК ВТ_Цифры1, ВТ_Цифры КАК ВТ_Цифры2, ВТ_Цифры КАК ВТ_Цифры3, ВТ_Цифры КАК ВТ_Цифры4 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ВТ_Числа.ПолеЧисло) КАК ДатаЧисло ИЗ ВТ_Числа КАК ВТ_Числа ГДЕ ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ВТ_Числа.ПолеЧисло) МЕЖДУ &ДатаНачала И &ДатаОкончания УПОРЯДОЧИТЬ ПО ДатаЧисло