Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Запрос с вычислениями  [new]
Michello
Member

Откуда:
Сообщений: 31
Будьте любезны, пособите!

Не получается построить запрос с использованием вычисляемых полей.

Имеется основная таблица и несколько подчиненных к ней, связанных по полю "Вид затрат". Подчиненные таблицы представляют из себя расшифровку фактических величин составляющих (у каждого "Вида затрат" несколько составляющих) конкретного "Вида затрат" в разбивке по годам. Плюс в каждой подчиненной таблице есть несколько полей дополнительного уровня детализации (т.е. каждая составляющая делится на более мелкие составляющие).
В запросе мне нужно просуммировать все поля в каждой подчиненной таблице и затем сами подчиненные таблицы друг с другом для каждого года и "Вида затрат".
Пробовал групповые операции, делал промежуточные запросы на создание таблиц, но конечный запрос не строится (выводятся только названия полей, а "белая" область данных не выводится).
В "хелпе" я не нашел подробностей, как это нужно делать. На форуме таких топиков тоже не нашел.

Подскажите, пож, решение?

Спасибо!
14 дек 04, 21:39    [1181128]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
DataDigger
Member

Откуда:
Сообщений: 68
Мне непонятна структура - неудобно как-то по словестному описанию ее восстанавливать.
14 дек 04, 21:44    [1181134]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Michello
но конечный запрос не строится (выводятся только названия полей, а "белая" область данных не выводится).

И нам надо угадать, где в запросе ошибка?
14 дек 04, 22:20    [1181166]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
Michello
Member

Откуда:
Сообщений: 31
DataDigger
Мне непонятна структура - неудобно как-то по словестному описанию ее восстанавливать.
Я приложил файл со снимком схемы данных. Там только вместо поля "Вид затрат" поле "Единица учета затрат", но суть одна и та же.
Каждая "Единица учета затрат" разбивается на составляющие (Энергозатраты, транспортные и т.п.), а те в свою очередь имеют свои составляющие (газ, тепло, электричество, ГСМ и т.п.). Плюс это все разбивается по годам. То есть для требуемого запроса нужно сначала просуммировать все составляющие в подчиненных таблицах (причем, как за все годы, так и за один выбранный год), а затем просуммировать сами подчиненные таблицы для получения в результате одной цифры для главной таблицы. То есть получится должна одна величина "Всего затрат по Единице учета затрат".


Владимир Саныч
И нам надо угадать, где в запросе ошибка?
Ну почти ))) Вернее, подсказать алгоритм действий. В имеющемся у меня пособии по Аксессу (к сожалению, без примеров) я прочитал, что такие вещи нужно делать с помощью группировки, а поэтому в несколько этапов, т.к. в запросе с группировкой нельзя производить вычислительные действия. Поэтому я сделал запросы с группировкой на создание таблиц, а из этих таблиц строю конечный запрос. Но, если промежуточные таблицы получаются, то простой запрос на их основе не выходит!
Подскажите, правильны ли мои действия? Где, предположительно, может быть ошибка?

Спасибо!

К сообщению приложен файл. Размер - 0Kb
15 дек 04, 14:38    [1182895]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
msn13
Member

Откуда: Скорый поезд №42
Сообщений: 1372
Подскажите, правильны ли мои действия? Где, предположительно, может быть ошибка?
А где прикажешь искать ошибки то????
Посмотри вложенные запросы
15 дек 04, 15:44    [1183173]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
Michello
Member

Откуда:
Сообщений: 31
msn13
Подскажите, правильны ли мои действия? Где, предположительно, может быть ошибка?
А где прикажешь искать ошибки то????
Посмотри вложенные запросы
А последовательность действий я правильно выполняю? По-другому можно как-то?
Как бы Вы сделали?
15 дек 04, 16:45    [1183446]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
msn13
Member

Откуда: Скорый поезд №42
Сообщений: 1372
мне не понятно некоторые вещи.
что пишется в табл
а) учет затрат, там что одно пеле? бред полнейший
б) в таблицы затрат, ты что прописываешь?
в) список годов, она тебе вообще нафига?

я бы вообще построил подругому
а) табл учет затрат
номер операции\айди затраты\количество затраты
б)затраты
сделалбы одну таблицу
айди затраты\цена затраты
в)отсюда бы делал выжемку
15 дек 04, 17:30    [1183637]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
Michello
Member

Откуда:
Сообщений: 31
msn13
мне не понятно некоторые вещи.
что пишется в табл
а) учет затрат, там что одно пеле? бред полнейший
б) в таблицы затрат, ты что прописываешь?
в) список годов, она тебе вообще нафига?

я бы вообще построил подругому
а) табл учет затрат
номер операции\айди затраты\количество затраты
б)затраты
сделалбы одну таблицу
айди затраты\цена затраты
в)отсюда бы делал выжемку
Моя вина, я не до конца все объяснил.

а) В таблице "Учет затрат", естетственно, есть еще поля со множеством реквизитов. За ключевым полем "Единица учета затрат" скрывается код предприятия (соответственно, реквизиты - это его название, вид выпускаемой продукции и прочая).
б) Соответственно, в таблицах затрат прописываются фактические величины тех или иных (понесенных) затрат в каждом году.
в) Список годов не обязателен. Он просто нужен для выпадающего списка в форме. Главное, что поле "Год" в таблицах затрат - ключевое. Вместе с полем "Единица учета затрат" они формируют составной ключ, чтобы можно было к одной "Единице учета затрат" привязывать множество периодов (годов).

По-другому строить базу проблематично, т.к. такая схема продиктована ограничением доступа к объектам базы (она защищена на уровне пользователей). К разным затратам имеют доступ разные юзеры.

Можете ли Вы предложить алгоритм сабжа для существующей схемы базы?

Правильно ли я понимаю этот алгоритм:
1) запрос с группировкой
2) создание промежуточной таблицы
3) запрос с вычислением на основе промежуточной таблицы?

Какая наиболее вероятная ошибка может здесь быть (по Вашему опыту)?
15 дек 04, 18:15    [1183800]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
ппп
Guest
не знаю как с полями но можно попробовать
объединить таблицы т.е UNION применить
или вычислить по частям-т.е в первом запросе по 1 таб .... и тд
а потом свести в один запрос.
15 дек 04, 18:28    [1183839]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
Michello
Member

Откуда:
Сообщений: 31
ппп
не знаю как с полями но можно попробовать
объединить таблицы т.е UNION применить
А где такая опция есть?

или вычислить по частям-т.е в первом запросе по 1 таб .... и тд
а потом свести в один запрос.
Вот так у меня и организовано. Первый вид запросов работает нормально, а когда свожу все в один, то он не хочет показывать данные.
Вы, например, когда первый раз такое пытались сделать, с какими-то проблемами столкнулись?
15 дек 04, 19:50    [1183990]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
ппп
Guest
покахи как сводишь
16 дек 04, 09:28    [1184464]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
msn13
Member

Откуда: Скорый поезд №42
Сообщений: 1372
Michello
ты правда выложи все запросы как ты енто делаешь
16 дек 04, 10:11    [1184575]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
Michello
Member

Откуда:
Сообщений: 31
Спасибо, ребят большое! Ваше недоумение по моему вопросу заставило тщательней просмотреть свое творение. Ошибка была дурацкой (как теперь кажется) - к финальному запросу у меня цеплялась по INNER JOIN еще одна таблица, в которой не было никаких данных. Это блокировало вывод всех остальных данных.

Однако тщательный просмотр выявил гораздо более серьезные проблемы.

Оказывается, что при суммировании (стандартными средствами Акса) числовых данных из N-го количества подчиненных таблиц, когда такие таблицы связаны, помимо поля "Код", например, полем "Дата", во-первых, если, например, количество записей по датам не совпадает между таблицами, то результирующий запрос учтет не все данные (т.к. нет опции "FULL JOIN"), во-вторых, финальная сумма получается в N раз больше истинной, т.к. система будет считать все N повторений ключевого поля в подчиненных таблицах.
Поправьте меня, но, кажется, это так.
21 дек 04, 18:45    [1198015]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
ппп
Guest
Есть левые и правые объединения, которые могут помочь при несовпадении числа строк в запросах.

-----
во-вторых, финальная сумма получается в N раз больше истинной, т.к. система будет считать все N повторений ключевого поля в подчиненных таблицах.
Поправьте меня, но, кажется, это так.
-----
А это как запрос составишь!
21 дек 04, 18:59    [1198047]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с вычислениями  [new]
Michello
Member

Откуда:
Сообщений: 31
ппп
Есть левые и правые объединения, которые могут помочь при несовпадении числа строк в запросах.
Однобокие объединения в любом случае не учтут не совпадающие строки "другого" бока (т.е. несовпадающие величины не просуммируются).

А это как запрос составишь!
Ну да, я и говорю, что стандартными средствами (конструктором) не получится. Задача банальная, а стандартных средств в Аксе не предусмотрено. Для новичка тяжело!
21 дек 04, 19:26    [1198094]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить