powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Теоретический вопрос по логике
10 сообщений из 10, страница 1 из 1
Теоретический вопрос по логике
    #32210491
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ!
Снова и снова наталкиваюсь на те же грабли:
Эксцесс у нас предназначен для обработки "потоковых" данных,
и если у нас есть, скажем, отгрузка товара на покупателя А, Б, В .... Я
и есть таблица, сворачивающая их в группы
(А, Ж, О - опт, Б, К, Г - розница и т.д.),
то нет ничего проще создать отчет,
где будет
ВСЕГО:
ГРУППА 1
пок-ль 1
пок-ль N
Итого по группе:
ГРУППА 2
и т. д.

НО:
часто возникает ситуация, когда нужно создать точно такой же отчет за предыдущий период (год),
и СРАВНИТЬ его с текущей ситуацией.
То есть отчет нужно модифицировать так:

ВСЕГО 2003:
ВСЕГО 2002:
Отклонение (2003/2002), %:

ГРУППА 1
пок-ль 1 2003:
пок-ль 1 2002:
Отклонение (2003/2002), %:
...
Итого по группе 2003:
Итого по группе 2002:
Отклонение (2003/2002), %:
ГРУППА 2
и т. д.

И все бы ничего, но как "Отклонение (2003/2002), %:" посчитать?!..
Собрав в одну строку в запросе оба года (2 * 12 = 24 записи) и произведя по ним вычисления внутри каждого пок-ля?
Только так?
Отзовитесь, кудесники!..
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32210497
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
формулу Отклонения pls, т.е. как оно считается
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32210744
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и считается: Отклонение = (сумма 2003 / сумма 2002)
(сумма - по каждому пок-лю, каждой группе, Итого)
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32210776
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну дык в чем проблема?
расставляешь группировки и вперед:

ГРУППА 1
(в данных)
пок-ль 1 2003: =Сумма2003
пок-ль 1 2002: =Сумма2002
Отклонение (2003/2002), %: =Сумма2003/Сумма2002
...
(в примечании группы)
Итого по группе 2003: =sum(Сумма2003)
Итого по группе 2002: =sum(Сумма2002)
Отклонение (2003/2002), %: =sum(Сумма2002) / sum(Сумма2002)
ГРУППА2
...
(в примечании отчета)
Итого 2003: =sum(Сумма2003)
Итого 2002: =sum(Сумма2002)
Отклонение (2003/2002), %: =sum(Сумма2002) / sum(Сумма2002)
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32211165
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в лени ;)
Чтобы получить (2003) / (2002), нужно иметь запись вида
пок-ль1 2002 2003
....
пок-льН 2002 2003
-вычислять-то только внутри одной записи можна...

А исходные данные - нормаль:
пок-ль год число

Вывод: надо соединять два запроса... 24 поля помесячно... 8(((
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32211184
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нах%ер помесячно-то? тебе же надо по годам?
поставь в запросе year(дата) и группируй по нему.
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32211884
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том-то и "счастье", что помесячно.
Хорошо, если начальство успокоится только на 2-ух годах...
Вот и искал универсальный способ...
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32211889
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты не понял.. sasha_1 тебе правильно говорит... если есть дата... то делать групировку помесячно или "погодно" без разницы....
month(поле_дата) или year(поле_дата)
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32211894
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для такого "счастья" подойдет перекрестный запрос.
...
Рейтинг: 0 / 0
Теоретический вопрос по логике
    #32213102
nauvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Формы и отчеты Access позволяют использовать свободные поля.
Ты помещаешь в отчет в области заголовок или примечание группы рядом с полями me!сумма1 и me!сумма2 свободное поле с именем PROC и процентным форматом данных.
А в соответствующем событии Форматирование модуля отчета пишешь

dim s as single
s=0
on error resume next 'на случай если me!сумма2 пусто или 0
s=me!сумма1/me!сумма2
me!PROC =s

формируется и просматривается отчет медленнее, но все просто и понятно
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Теоретический вопрос по логике
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]