|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.07.2013, 22:45 | #1 |
Пользователь Подтвердите свой е-майл
Регистрация: 13.05.2008
Сообщений: 65
|
Отчет за год по месяцам с переходом на следующий месяц
Имеем:
Таблица с who, date_start, day_plus Делаю перекрестный запрос, выводится что то типа такого: Код:
Код:
Вобщем, хочется сделать визуальное отображение занятых дней с некоего начального дня. С минимальным набором записей. Фактически можно все и руками занести в таблицу по каждому дню и спокойно выводить. Скрипт делящий дату начала события при превышении первого числа следующего месяца на две части и последующим заполнением дат я думаю будет не сложно сделать... Но вдруг можно обойтись и минимальным количеством начальных данных? Тем более что в последствии в таблице хочется сделать поле day_plus_correct - там будет ставиться некая корректирующая цифра, и вот тут уже в существующие данные (при делении и заполнении большой таблицы) - будет довольно проблематично... Если есть у кого какие мысли по решению такой задачки - буду рад послушать и поучиться |
11.07.2013, 00:16 | #2 |
Участник клуба
Регистрация: 12.08.2010
Сообщений: 1,079
|
а если в месяц 2 события
с 5 ===7 дней с 25-----4 сколько строк будет в отчете а если перекрест периодов с 25 декабря --100 дней --4 строки с 2 января-12 дней с 10---10дней с 25 марта-34 дней --------- или все строки независимы 4 стр-1-1-2
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание |
11.07.2013, 00:54 | #3 |
Пользователь Подтвердите свой е-майл
Регистрация: 13.05.2008
Сообщений: 65
|
сейчас вот такой запрос выводит то что указано выше:
Код:
1. не важно сколько событий в конкретный месяц, важно то что если [date_start]+[day_plus] в сумме дадут большую дату чем datepart(Year([date_start], month([date_start]), 1) то такую строку надо как то делить на две составляющие. т.е. если я правильно понял: 1 с 5 числа плюс 7 дней 3 с 25 числа плюс 4 дня в итоге (если не високосный февраль) мы получим 3 строки: 1 05.02.13 ----+++++++----------------- 3 25.02.13 -------------------------+++ 3 25.02.13 +-------------------------- 2. Перекрестов периодов не должно быть (они не допустимы). т.е. такого: 1 с 25.12.12 на 100 дней 1 с 02.01.13 на 12 дней 1 с 10.01.13 на 10 дней ... в таблице не будет. Единственное, что планируется - это добавление поля day_correct. И пока оно будет просто прибавляться к [date_start]+[day_plus]. Я так понимаю что перекрестные периоды создадут некие трудности для вывода? вообще они да, существуют. но пока я эти периоды решил оставить в виде day_correct (как обычное корректирующее цифровое значение). Да, если это важно - who (текст), date_start (короткая дата), day_plus (длинное целое) upd. вот таблица, вот результат запроса Последний раз редактировалось smoky; 11.07.2013 в 00:58. |
11.07.2013, 03:13 | #4 |
Участник клуба
Регистрация: 12.08.2010
Сообщений: 1,079
|
БЕЗ ПЕРЕКРЕСТНОГО ЗАПРОСА)прямо в отчете)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание |
12.07.2013, 00:43 | #5 |
Пользователь Подтвердите свой е-майл
Регистрация: 13.05.2008
Сообщений: 65
|
решение оригинальное ) помучился я с его разбором ))
а реально так сделать чтобы оно по месяцам дробилось? просто то что выше - это применительно к запросу писал... т.е. вывести примерно вот в таком виде: Код:
|
12.07.2013, 08:44 | #6 |
Участник клуба
Регистрация: 12.08.2010
Сообщений: 1,079
|
более стандартное решение со вспомогательной таблицей дат
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
месяц год в datedimepicker | kate158 | Компоненты Delphi | 1 | 22.10.2012 10:38 |
Расчет дежурств на следующий месяц по табелю текущего месяца | zenner | Microsoft Office Excel | 9 | 20.11.2010 17:01 |
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти год с наименьшим номе | Figushkin | Помощь студентам | 2 | 04.06.2010 23:16 |
Как перейти на следующий год обучения | lenuxoid | БД в Delphi | 1 | 11.05.2009 22:20 |
Месяц, год | megavolt | Microsoft Office Access | 0 | 06.04.2009 16:22 |