Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Опять проблема с вычислениями в запросе... / 12 сообщений из 12, страница 1 из 1
31.03.2004, 16:47
    #32464398
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
Подскажите где ошибка и как надо правильно? Выражение в поле запроса:
Код: plaintext
1.
IIf(Sum([Оплаты]![Платеж])<[Контракты]![Сумма];Sum
([Оплаты]![Платеж])/[Контракты]![Сумма]; 1 )
Смысл: если сумма платежей меньше чем сумма всего контракта, то вычислить отношение(т.е. сколько процентов уже оплачено). Сообщение:"Попытка выполнить запрос, который не включает указанное выражение <приводится вся строка> как часть статистической функции или группы".
Блин! Так и не научусь применять правильно статистические функции!
...
Рейтинг: 0 / 0
31.03.2004, 17:03
    #32464426
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
скажем так
Sum(iif(a>b; a;b))
т.е. _все выражение_ должно быть Sum или иной стат ф-ей, а не выражением от стат ф-й
(што, собсно, понятно)
...
Рейтинг: 0 / 0
31.03.2004, 17:03
    #32464427
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
Пробуй DSum
синтаксис в хелпе глянь
...
Рейтинг: 0 / 0
31.03.2004, 17:29
    #32464487
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
С DSum - таже ошибка, а вот если вынести из выражения Sum:
Код: plaintext
Sum(IIf[Оплаты]![Платеж])<[Контракты]![Сумма];[Оплаты]![Платеж]/[Контракты]![Сумма]; 1 ))
, то, если сумма всех платежей = сумме контракта, в поле выводится всегда 100%.
Идея же в том, что в этом поле должен выводиться % суммы текущих платежей, пока их сумма < суммы контракта.
И должно быть еще одно поле, где отдельно указан последний платеж(в %), который "закрыл" весь контракт.
Сижу второй час ковыряюсь, не выходит ничего...
...
Рейтинг: 0 / 0
31.03.2004, 17:49
    #32464540
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
быллиииииин.
1. твоя ашипка вылечилась. это плюс. Вопрос решен.
2. ты не знаешь, чего хочешь (или не можешь сформулировать) - это минус. Твои проблемы не решены.

Резюме:
Привел бы SQL, на.

Если тебе никакие грюппы в запросе не нужны - бери DSUM -он посчитает што к чему.
Если все считается в группирвочном (по другим причинам) запросе, то вычисляемое поле должно быть стат функцией (суммой стат функций). От этого стартуй.

а если не прорубаешь логику построения запроса, так и пиши - "надо то-то и то-то, вспомошествуйте, братья в Аксессе, бо мы сами не местные"
...
Рейтинг: 0 / 0
01.04.2004, 10:09
    #32464952
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
Ну не прорубаю я логику запроса, ну бейте меня 2-томником Гейтса по голове...
Чего хочу от запроса получить - написал в предыдущем посте...
Поможите кто чем может(хотя сами мы и местные)....
...
Рейтинг: 0 / 0
01.04.2004, 10:37
    #32465007
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
А почему это должен быть обязательно один запрос? Может у тебя два поля на форме, так и заставь каждое поле индивидуальным способом вычисляться
...
Рейтинг: 0 / 0
01.04.2004, 11:00
    #32465056
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
Да нет там никакой формы: этот запрос гонится в отчет(Ексель).
Так можно в запросе такое посчитать?
...
Рейтинг: 0 / 0
01.04.2004, 11:14
    #32465094
Deminik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
авторIIf(Sum([Оплаты]![Платеж])<[Контракты]![Сумма];Sum
([Оплаты]![Платеж])/[Контракты]![Сумма];1)

Кстати, у меня, по какой-то причине, в запросе IIF работает только с запятой в качестве разделителя аргументов...
Т.е. попробуй ";" поменять на ","...
к сведению...
...
Рейтинг: 0 / 0
01.04.2004, 12:10
    #32465243
oltan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
[Контракты]![Сумма]-должна быть статистической функцией (о чем и сообщалось в ошибке). Решение проблемы:
1. написать DSum("[Платеж]";"Оплаты";"(((Оплаты.key)=[Контракты]![key]))")
но это если ты хочешь редатируемый запрос, т. к по скорости лучше
2. сделать отдельный запрос, просуммировать там твои [Оплаты]![Платеж] и связать уже в конечном запросе по ключу с таб. [Контракты]
...
Рейтинг: 0 / 0
01.04.2004, 12:11
    #32465251
достал
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
1. можно. Можно либо сделать, либо, уяснив неккоректность постановки задачи, откорректировать и опять таки сделать :0). Ничего экстраординарного математически ведь не предполагается? Всяких там решений Диофантовых уравнений весьма ощего вида :0)

2. Замечу, что ты еще и ленив. "Чего хочу от запроса получить - написал в предыдущем посте" Эдак ты, ой-ля-ля, спросишь, можно ли построить километровую башню, но не уточнишь, что строить надо из говна. Причем на песке.

Примерная формулировка вопроса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Таблицы:
А
 Поля
  а
  б
  в
Б
 Поля
  а
  б
  в  
В
 Поля
  а
  б
  в
Связи
  ...

Нужно получить поля:


_______
Кстати, если "гонится в ексель", то можно написать свою выгрузку рекордсета (где, при прогонке по набору и определять, какой из платежей - "последний") Будет работать медленнее чем CopyFromRecordset, но выигрыш может быть из-за того, что отпадет надобность во вложенных _группировочных_ запросах (причем в случае "последнего платежа" предвидится что-то похожее на группировочный вложенный второго уровня вложения) (подсчеты агрегатов будешь делать сам, при проходе по набору данных).
...
Рейтинг: 0 / 0
01.04.2004, 14:32
    #32465611
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблема с вычислениями в запросе...
2 oltan:
спасибо за подсказку: [Контракты]![Сумма]-должна быть статистической функцией
Поскольку это значение одно и тоже для всех записей группы, добавил ей ф-цию First(мог бы и Min или Мах).
Запрос заработал, но сразу выявилась ошибка: пока первое выражение меньше второго, проценты суммы платежей выводятся. А при равенстве выводится 100%, хотя надо выводить "без последнего"....
Но oltan-у все-равно спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Опять проблема с вычислениями в запросе... / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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