powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / расчет индексов, помогите
25 сообщений из 43, страница 1 из 2
расчет индексов, помогите
    #32248876
bazil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть такая таблица:

годы.....объем

2002.....100
2003.....120
2004.....135

как запросом посчитать темпы роста по годам, что бы получилось вот так:

2002.....1
2003.....1,2
2004.....1,125

???
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248895
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение в лоб

Query4
Код: plaintext
1.
SELECT Min(Table1.Year) AS MinOfYear
FROM Table1;
Query5
Код: plaintext
1.
SELECT Table1.Value
FROM Table1 INNER JOIN Query4 ON Table1.Year = Query4.MinOfYear;
Query6
Код: plaintext
1.
SELECT Table1.Year, Table1.Value/Query5.Value
FROM Table1, Query5;


объем - Value
годы - Year

Можно попытаться объеденить в один запрос, но тут надо знать версию Access'a
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248901
bazil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
access 2000 9.0
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248929
bazil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще предложите, пожалуйста, варианты!
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248939
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так тож работать должно к сожалению проверить не могу
Код: plaintext
1.
2.
3.
SELECT Table1.Year, Table1.Value/Query5.Value
FROM Table1, (SELECT Table1.Value
FROM Table1 INNER JOIN (SELECT Min(Table1.Year) AS MinOfYear
FROM Table1) As Query4 ON Table1.Year = Query4.MinOfYear) As Query5;
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248956
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT s1.fy, nz(s1.fval/s2.fval,1) AS fprc
FROM ff AS s1 LEFT JOIN [select * from ff]. AS s2 ON s1.fy=s2.fy+1;

Таблица ff (fy, fval)
при условии, что записи по годам не повторяются
Вариант для MDB, для сиквела немного по-другому
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248962
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да чуть не забыл, мой вариант будет работать если записи по годам без "дырок", т.е. нет разрывов между годами.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248964
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To incold
А разве в 2000м вложеный запрос так { }. As записываеться?

Вопрос для общего развития

вместо - "{" - читай квадратные скобки
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248966
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sfagnum
Как в 2000-м не знаю я не использую построитель, пишу запросы руками, и использую AccessXp
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248969
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мдаа... нет просто у меня 97\'ой\r
\r
просто ЛП тут, от Дата: 9 май 03, 02:49, писал что в ХР по другому вкладывабт запросы
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248977
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу разницы как ассекс преобразовал запрос (главное результат), могу написать текст, который я писал, до преобразования

SELECT s1.fy, nz(s1.fval/s2.fval,1) AS fprc
FROM ff s1
LEFT OUTER JOIN (select * from ff) s2 ON s1.fy=s2.fy+1
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248979
bazil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, спасибо все работает, только у Sfagnum'a считаются индексы по первому значению, у incold так как мне и надо-отношение последующего к предыдущему.
Всем спасибо!
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32248994
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 bazil
Сорьки не правильно понял...
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249092
bazil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to incold and others

Блин, все сильно усложнилось: есть еще столбцы, т.е алгоритм incold'a не работает, выглядит все приблизительно вот так:

segment.........year.......sum

x..................2002......100
x..................2003......120
x..................2004......135
...
y.................2002......110
y.................2003......115
y.................2004......125
...

есть ли алгоритм по которому можно будет считать цепные индексы(2004/2003 и т.п.) в одном запросе, что бы на выходе получалось:

x..................2002.....1
x..................2003.....1.2
x..................2004.....1.125
...
y..................2002.....1.05
и т.д.

можно ли это сделать при большем количестве столбцов?

Заранее спасибо
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249101
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, а самому немного подумать?!

SELECT s1.seg, s1.fy, nz(s1.fval/s2.fval,1) AS fprc
FROM ff AS s1 LEFT JOIN [select * from ff]. AS s2 ON s1.fy=s2.fy+1 and s1.seg=s2.seg;

Таблица ff (seg, fy, fval)
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249108
bazil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-) Сорри, наверное и подумал бы, тем более , что в других областях деятельности у меня это неплохо получается-), но все что Вы мне предложили выходит за пределы моего знания аксеса-), так что использую, не понимая как это работает. Спасибо, за долготерпение.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249114
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В начале предупреждать надо об уровне подготовки

Варианты:
- только не бейте
- извините, что к вам обращаемся, мы сами не местные
- помогите чайнику
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249157
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
- извините, что к вам обращаемся, мы сами не местные
Все прекрасно, но если у меня нет столбца с номерами, то как быть??? Этот алгоритм тогда не прокатит. Надо посчитать себестоимость.
1 строка берется из таблички "Входящее_сальдо". Дальше по каждому материалу должна рассчитываться себестоимость.
......1............2..............3............4.............5............6
---Дата......Кол-во......Сумма.......с/с.........Остаток....
1...............100............1000........10..........100........ - это втрока вход 2сальдо
2.................60.............1000......12,5..........160......
3.................40...............800........14..........200.......
4................-50..............0............14.........150.....
Ну и так далее. Думаю, что большинство программеров баз данных знает как формируется себестоимость.
Столец 4 формируется сдедующим образом:
Для второй строки: (с/с1*Остаток1+Сумма2)/Остаток2
Для третьей строки: (с/с2*Остаток2+Самму3)/Остаток3
.........
Уникальных номеров строк нет. Попробовал пример из http://am.rusimport.ru/msaccess/topic.aspx?ID=87, но у меня не получилось. Пишет про ошибку в выражении FROM. :(((
ПоможИте, пжалуста!!!
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249163
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должен же в таблице быть ключ. (не обязательно номер, это может быть комбинация полей которые однозначно идетифицируют записб)
Какой он (ключ)?
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249174
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не таблица. Это запрос. В таблицах, ессно, есть уникальные номера (кстати, если была отмена ввода, то они не обязательно уникальные (это для поля типа Счетчик)). Данные в запрос Себестоимости тянуться из 3-х таблиц. Почему? Ну так уж я написал. Можно уменьшить до двух, но уже поздно. :)) Просто есть поставка товара и у этой поставке может быть 2, а то и 3 перевозчика, следовательно еще одна табличка с перевозчиками и суммой перевозки (транспортные расходы тоже в себестоимость). Вои и получается, что тяну сумму и контрагента юнионом.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249188
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:(
Ничем помочь не могу, т.к. не все программеры баз данных знают как формируется себестоимость

Базы данных - это не только бухгалтерия.
Может быть если будет пример как у автора топика:
Есть набор записей (со значением каждого столбца), хочу получить такой набор записей (с формулой расчета каждого столбца).
Тогда может что-то и подскажу, хотя особо надеяться на это не стоит.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249204
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос:
.......Дата.......Кол-во......Сумма
1.....................100............1000 - это строка вход сальдо (она постоянна)
2.....................60.............1000
3.....................40...............800
4.....................-50..............0
Интересует получить из нее следующее:
---Дата......Кол-во......Сумма.......с/с.........Остаток....
1...............100............1000........10..........100........ - это строка вход сальдо
2.................60.............1000......12,5..........160......
3.................40...............800........14..........200.......
4................-50..............0............14.........150.....
Расчет четвертого столбца (формула)
Для второй строки: (с/с1*Остаток1+Сумма2)/Остаток2
Для третьей строки: (с/с2*Остаток2+Самму3)/Остаток3
и так далее
Расчет пятого столбца (формула)
Для второй строки: Остаток1+Кол-во1
Для третьей строки: Остаток2+Кол-во2
и так далее
----
Надеюсь хоть чуть-чуть понятно объяснил. :)
---
---
> Базы данных - это не только бухгалтерия.
Ага, это еще и финансово-экономические отделы.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249216
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 TRoUbLEs
Какая зависимость между датами?
Если ее нет, т.е даты могут быть произвольными, то нужно копать в сторону варианта Sfagnum
SELECT Table1.Year, Table1.Value/Query5.Value
FROM Table1, (SELECT Table1.Value
FROM Table1 INNER JOIN (SELECT Min(Table1.Year) AS MinOfYear
FROM Table1) As Query4 ON Table1.Year = Query4.MinOfYear) As Query5;

Ваше время истекло , мое т.е. так что дальше не сегодня.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249231
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дата здесь нужна только для сортировки по возрастанию, чтобы на определенную дату по ПРАВИЛЬНОЙ себестоимость списать материалы. Одной даты может быть штуки 3-4 (вариант с GROUP не подходит).
-----
Ну ладно, завтра так завтра. ;-) Ибо правильно сказано "мое время истекло."
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249357
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Basil
Можно еще так:
Код: plaintext
1.
2.
3.
4.
select  t1.[year],t1.[Amount],format(t1.[Amount]/max(nz(t2.v1,t1.v1)), "0 . 000 ") as Result
from table t1 left  join table t2
on t1.[year]>t2.[year]
group by t1.[year],t1.[Amount]
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / расчет индексов, помогите
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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