|
|
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
Будьте любезны, пособите! Не получается построить запрос с использованием вычисляемых полей. Имеется основная таблица и несколько подчиненных к ней, связанных по полю "Вид затрат". Подчиненные таблицы представляют из себя расшифровку фактических величин составляющих (у каждого "Вида затрат" несколько составляющих) конкретного "Вида затрат" в разбивке по годам. Плюс в каждой подчиненной таблице есть несколько полей дополнительного уровня детализации (т.е. каждая составляющая делится на более мелкие составляющие). В запросе мне нужно просуммировать все поля в каждой подчиненной таблице и затем сами подчиненные таблицы друг с другом для каждого года и "Вида затрат". Пробовал групповые операции, делал промежуточные запросы на создание таблиц, но конечный запрос не строится (выводятся только названия полей, а "белая" область данных не выводится). В "хелпе" я не нашел подробностей, как это нужно делать. На форуме таких топиков тоже не нашел. Подскажите, пож, решение? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 21:39:40 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
Мне непонятна структура - неудобно как-то по словестному описанию ее восстанавливать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 21:44:04 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
Michelloно конечный запрос не строится (выводятся только названия полей, а "белая" область данных не выводится). И нам надо угадать, где в запросе ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 22:20:16 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
DataDiggerМне непонятна структура - неудобно как-то по словестному описанию ее восстанавливать.Я приложил файл со снимком схемы данных. Там только вместо поля "Вид затрат" поле "Единица учета затрат", но суть одна и та же. Каждая "Единица учета затрат" разбивается на составляющие (Энергозатраты, транспортные и т.п.), а те в свою очередь имеют свои составляющие (газ, тепло, электричество, ГСМ и т.п.). Плюс это все разбивается по годам. То есть для требуемого запроса нужно сначала просуммировать все составляющие в подчиненных таблицах (причем, как за все годы, так и за один выбранный год), а затем просуммировать сами подчиненные таблицы для получения в результате одной цифры для главной таблицы. То есть получится должна одна величина "Всего затрат по Единице учета затрат". Владимир СанычИ нам надо угадать, где в запросе ошибка?Ну почти ))) Вернее, подсказать алгоритм действий. В имеющемся у меня пособии по Аксессу (к сожалению, без примеров) я прочитал, что такие вещи нужно делать с помощью группировки, а поэтому в несколько этапов, т.к. в запросе с группировкой нельзя производить вычислительные действия. Поэтому я сделал запросы с группировкой на создание таблиц, а из этих таблиц строю конечный запрос. Но, если промежуточные таблицы получаются, то простой запрос на их основе не выходит! Подскажите, правильны ли мои действия? Где, предположительно, может быть ошибка? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 14:38:25 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Посмотри вложенные запросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 15:44:21 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
msn13 Код: plaintext Посмотри вложенные запросыА последовательность действий я правильно выполняю? По-другому можно как-то? Как бы Вы сделали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 16:45:55 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
мне не понятно некоторые вещи. что пишется в табл а) учет затрат, там что одно пеле? бред полнейший б) в таблицы затрат, ты что прописываешь? в) список годов, она тебе вообще нафига? я бы вообще построил подругому а) табл учет затрат номер операции\айди затраты\количество затраты б)затраты сделалбы одну таблицу айди затраты\цена затраты в)отсюда бы делал выжемку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 17:30:36 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
msn13мне не понятно некоторые вещи. что пишется в табл а) учет затрат, там что одно пеле? бред полнейший б) в таблицы затрат, ты что прописываешь? в) список годов, она тебе вообще нафига? я бы вообще построил подругому а) табл учет затрат номер операции\айди затраты\количество затраты б)затраты сделалбы одну таблицу айди затраты\цена затраты в)отсюда бы делал выжемкуМоя вина, я не до конца все объяснил. а) В таблице "Учет затрат", естетственно, есть еще поля со множеством реквизитов. За ключевым полем "Единица учета затрат" скрывается код предприятия (соответственно, реквизиты - это его название, вид выпускаемой продукции и прочая). б) Соответственно, в таблицах затрат прописываются фактические величины тех или иных (понесенных) затрат в каждом году. в) Список годов не обязателен. Он просто нужен для выпадающего списка в форме. Главное, что поле "Год" в таблицах затрат - ключевое. Вместе с полем "Единица учета затрат" они формируют составной ключ, чтобы можно было к одной "Единице учета затрат" привязывать множество периодов (годов). По-другому строить базу проблематично, т.к. такая схема продиктована ограничением доступа к объектам базы (она защищена на уровне пользователей). К разным затратам имеют доступ разные юзеры. Можете ли Вы предложить алгоритм сабжа для существующей схемы базы? Правильно ли я понимаю этот алгоритм: 1) запрос с группировкой 2) создание промежуточной таблицы 3) запрос с вычислением на основе промежуточной таблицы? Какая наиболее вероятная ошибка может здесь быть (по Вашему опыту)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 18:15:47 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
не знаю как с полями но можно попробовать объединить таблицы т.е UNION применить или вычислить по частям-т.е в первом запросе по 1 таб .... и тд а потом свести в один запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 18:28:49 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
пппне знаю как с полями но можно попробовать объединить таблицы т.е UNION применитьА где такая опция есть? или вычислить по частям-т.е в первом запросе по 1 таб .... и тд а потом свести в один запрос.Вот так у меня и организовано. Первый вид запросов работает нормально, а когда свожу все в один, то он не хочет показывать данные. Вы, например, когда первый раз такое пытались сделать, с какими-то проблемами столкнулись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 19:50:51 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
покахи как сводишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 09:28:13 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
Michello ты правда выложи все запросы как ты енто делаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 10:11:54 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
Спасибо, ребят большое! Ваше недоумение по моему вопросу заставило тщательней просмотреть свое творение. Ошибка была дурацкой (как теперь кажется) - к финальному запросу у меня цеплялась по INNER JOIN еще одна таблица, в которой не было никаких данных. Это блокировало вывод всех остальных данных. Однако тщательный просмотр выявил гораздо более серьезные проблемы. Оказывается, что при суммировании (стандартными средствами Акса) числовых данных из N-го количества подчиненных таблиц, когда такие таблицы связаны, помимо поля "Код", например, полем "Дата", во-первых, если, например, количество записей по датам не совпадает между таблицами, то результирующий запрос учтет не все данные (т.к. нет опции "FULL JOIN"), во-вторых, финальная сумма получается в N раз больше истинной, т.к. система будет считать все N повторений ключевого поля в подчиненных таблицах. Поправьте меня, но, кажется, это так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 18:45:22 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
Есть левые и правые объединения, которые могут помочь при несовпадении числа строк в запросах. ----- во-вторых, финальная сумма получается в N раз больше истинной, т.к. система будет считать все N повторений ключевого поля в подчиненных таблицах. Поправьте меня, но, кажется, это так. ----- А это как запрос составишь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 18:59:03 |
|
||
|
Запрос с вычислениями
|
|||
|---|---|---|---|
|
#18+
пппЕсть левые и правые объединения, которые могут помочь при несовпадении числа строк в запросах.Однобокие объединения в любом случае не учтут не совпадающие строки "другого" бока (т.е. несовпадающие величины не просуммируются). А это как запрос составишь!Ну да, я и говорю, что стандартными средствами (конструктором) не получится. Задача банальная, а стандартных средств в Аксе не предусмотрено. Для новичка тяжело! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 19:26:16 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32837768&tid=1669634]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 351ms |

| 0 / 0 |
