![]() |
|
Модераторы: Akina |
![]()
|
|
| Dinchik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.2.2006 Репутация: нет Всего: нет |
Сортируем данные из БД по сроку действия. При этом, нужны сроки:
1 день от 2 до 7 дней от 7 до 14 дней от 15 до 1 месяц от 1 до 2 месяц 1 год 15 дней 1 год 6 месяцев В БД имеются поля (Остаток, Дата начала договора,Дата окончания договора,% ставка) Нужны след. поля: 1. Столбец "сумма остатков" - просуммированные остатки со сроком действия, например, на 1 день. 2. Столбцы "Средневзвешенный процент" и "Средневзвешенный срок" - значения ячеек столбцов вычисляются по формуле вычисления сред.взв. значений. В данной таблице, это умножение соответствующей ячейки столбца "Остаток" на соотв. ячейку столбца "Проценты" ((или на разницу "Дата окон." и "Дата нач.") и записываем все вычисления в столбец ср.взв. процент, находим сумму из столбца ср.взв. процент (или срок, в случае вычисления ср.взв. срока) делим на среднюю "остаток" что будет равно ср.взв.-ному процента или срока. Вот такие дела, не получается найти средневзвешенный срок, т.к. не могу просуммировать в программе например все дни между 2 и 7. ПОМОГИТЕ ПЛИЗ!!! |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: нет Всего: 8 |
Не понял.
Можно пример с маленькой таблицей. Что дано (таблица), что должно получиться (таблица) и что не получается? |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Создай вспомогательную таблицу "интервал" типа
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Dinchik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.2.2006 Репутация: нет Всего: нет |
Привет Всем помогающим!
В общем из таблицы нужно вывести таблицу вот...а не получается у меня найти средневзвешенный срок!Например, программа вытаскивает сумму остатков на срок от 2 до 7 дней, но не может найти срвзв срок, т.е. я не могу задать точные функции или формулу...в общем такую детализацию программа не расчитывает!!! Добавлено @ 20:47 WHERE (БД.Конец-БД.Начало) between Инт.Min AND Инт.Max Это тоже плохо помогает у меня в программе так и идет, она вытаскивает все остатки между этими сроками и суммирует как я и задаю. Но не могу также найти срвзв. срок. Т.е. соотв. ячейку остатков умножить на разницу сроков (БД.Конец-БД.Начало) соотв. ячеек в отд. столбце. После этого сумму нового столбца разделить на сумму столбца остатков! Может у Вас получится |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Dinchik
Знаешь, если я буду сокращать код так же, как ты свой постинг - ты никогда и ничего не поймешь. Будь уж так любезен поправить. И еще - найди человека, который про твою задачу НИЧЕГО не знает. Прочти (или дай прочесть) ему то что ты написАл. И посмотри, поймет он или нет. Думаю что нет. То, что очевидно тебе, вовсе не очевидно остальным - постарайся найти слова и формулировки, которые понятны и не допускают двоякого толкования. Тогда станет возможным тебе помочь. PS. Я уже почти знаю как - но не уверен что правильно понял твои объяснения. Так что подожду... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Dinchik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.2.2006 Репутация: нет Всего: нет |
Privet Akina!
В общем нужно найти "Средневзвешенный срок" - это находится следующим образом: умножаем все ячейки столбца "Остаток" на разницу столбцов "Дата нач и Дата окон." и получаем 3 столбец, потом сумму вычисленного столбца делим на сумму столбца "остаток" что будет равно ср.взв. сроку. Надеюсь, это понятно |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: нет Всего: 8 |
А можно всё-таки пример?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Dinchik
В таком случае сначала создай запрос, который выбирает все записи и все поля, и кроме того для каждой записи вычисляет дополнительные поля, т.е. интервал ( ДатаКон-ДатаНач ) и заготовку для расчета твоего средневзвешенного срока ( (ДатаКон-ДатаНач)*Остаток ). И именно его, а не исходную таблицу, используй для расчета. Когда поймешь как это работает, и отладишь - просто пересобери 2 запроса в один. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Dinchik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.2.2006 Репутация: нет Всего: нет |
Akina,
а если сразу то могут быть ошибки в вычислениях? У меня сумма исходной таблицы и сумма вычисленной не сходятся, не могу найти ошибку. Наверное надо сначала разбить как ты говоришь...ммм.... спасибо за совет! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
чудес не бывает... выведи количество записей в каждом случае - для начала. PS. Это вообще хорошая практика - на время отладки во все группирующие запросы дополнительно вводить подсчет Count... а по поводу вложенных запросов - посмотри принцип вот тут. Лучше изгадить пару листов, чем искать ошибку в каком-нить трехэтажном безобразии... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Dinchik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.2.2006 Репутация: нет Всего: нет |
Akina
после применения вашего совета возникла еще одна проблема в общем сумма остатков исходной таблицы и сумма остатков расчетной таблицы не сходятся я думаю что ошибка отсюда: '1 день' =1; '7 дней' = between 1 and 7; '14 дней' = between 8 and 14; '1 месяц' = between 15 and 31; '2 месяца' = between 32 and 61; '3 месяца' = between 62 and 92; '4 месяца' = between 93 and 122; '5 месяцев' = between 123 and 154; '6 месяцев' = between 155 and 183; '7 месяцев' = between 184 and 214; '8 месяцев' = between 215 and 244; '9 месяцев' = between 245 and 275; '10 месяцев' = between 276 and 305; '11 месяцев' =between 306 and 335; '1 год' = between 336 and 366; '1 год 15 дней' = between 367 and 381; '1 год 6 месяцев' = between 382 and 548; '2 года' = between 549 and 733; '3 года' = between 734 and 1096; '4 года' = between 1097 and 1462; '5 лет' = between 1463 and 1827; '6 лет' = between 1828 and 2193; '7 лет' = between 2194 and 2558; '8 лет' = between 2559 and 2924; '9 лет' = between 2925 and 3289; '10 лет' = between 3290 and 3655; 'свыше 10 лет' = 3656 and 7310; Правильно ли это?Помогите плииииз!!!! а то я с этой задачей спать перестану, когда же я его закончу????????????????????????? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Dinchik
Очень хочется обозвать нехорошим словом, означающим человека, не желающего думать. Посмотри ВНИМАТЕЛЬНО на пример вспомогательной таблицы, который я привел выше. ОЧЕНЬ ВНИМАТЕЛЬНО. И сравни с тем что ты натворил. Особенно в самом начале и в самом конце. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Dinchik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.2.2006 Репутация: нет Всего: нет |
Akina
я ничего не поняла, причем здесь мин. и макс. в общем Вы можете объяснить так, чтобы я поняла?(это моя первая подобная программа) и как вообще будет правильно? отправляю Вам код в прикр. файле Присоединённый файл ( Кол-во скачиваний: 4 )
kod_progr.txt 7,21 Kb |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Ошибка номер раз - от 2 до 7. Иначе 1 день - попадает в 2 диапазона. Ошибка номер два - от 3656 до MaxInt (MaxLong). Иначе более 7310 дней - не учитывается. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Dinchik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 8.2.2006 Репутация: нет Всего: нет |
значит остальной правильно?
попробую щас |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |