powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / расчет индексов, помогите
18 сообщений из 43, страница 2 из 2
расчет индексов, помогите
    #32249378
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT t1.*,
format(t1.Amount/nz(
   (select top  1  Amount
    from table t2 
    where t2.[Year]< t1.[Year] 
    order by t2.[Year] desc),
    t1.Amount),
     "0 . 000 ")  as [Ratio]
from
table t1
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249773
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что ж, вот и наступило это самое "ЗАВТРА"
Задача немного сдвинулась с места, но тут начался очередной пригорок, поэтому так и не поехали.
1) Как добавлять нумерацию строк в запрос, основанный на таблички, где есть id я разобрался. Но у меня совершенно не получилось пронумеровать табличку, где этого самого id нет. :(
Вопрос: Возможно ли это???
Хотя... Как я уже говорил, этот запрос тянет данные из 3 таблиц, посредством ЮНИОНа. В принципе, можно сделать уникальнам составной ключ (id, tabl), но тогда я не понимаю как пронумеровать записи. :(( У меня не получилось.
2) Т.к. этот ЮНИОН-запрос, то организовывать СЕЛЕКТ в СЕЛЕКТе нежелательно, ибо сами понимаете, что будет со скоростью (вчера так и не должадся окончания этого увлекательного процесса и снял Аксес по трем пальцам). Может можно обойтись без этого, но как???
3) Основная задача стоит в том, чтобы брать данные из предыдущей строки и заносить их в последующую, выполняя нужные расчеты.
P.S.
извините, что к Вам обращаемся, сами мы не местные. :)
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32249812
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что ж, вот и наступило это самое "ЗАВТРА"
Задача немного сдвинулась с места, но тут начался очередной пригорок, поэтому так и не поехали.
1) Как добавлять нумерацию строк в запрос, основанный на таблички, где есть id я разобрался. Но у меня совершенно не получилось пронумеровать табличку, где этого самого id нет. :(
Вопрос: Возможно ли это???
Хотя... Как я уже говорил, этот запрос тянет данные из 3 таблиц, посредством ЮНИОНа. В принципе, можно сделать уникальнам составной ключ (id, tabl), но тогда я не понимаю как пронумеровать записи. :(( У меня не получилось.
2) Т.к. этот ЮНИОН-запрос, то организовывать СЕЛЕКТ в СЕЛЕКТе нежелательно, ибо сами понимаете, что будет со скоростью (вчера так и не должадся окончания этого увлекательного процесса и снял Аксес по трем пальцам). Может можно обойтись без этого, но как???
3) Основная задача стоит в том, чтобы брать данные из предыдущей строки и заносить их в последующую, выполняя нужные расчеты.
P.S.
извините, что к Вам обращаемся, сами мы не местные. :)
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250006
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот день пришел - и никого, лишь я один за всех (с) почти классика
Жаль, что никто ничего не может сказать по моему вопросу. :((( Если это где-то уже обсуждалось, то ткните туда, если не сложно (мне поиск не помог особо) или в первый(!) том Гетца (второго пока нет).
Ну и если кто-то надумает что-то, то буду весьма прЫзнателен.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250023
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2TRoUbLEs
Нумерация строк в запросе, говоришь, тебя спасет?

Попробуй такую функцию написать:

Public Function GetNextNumber(a) as Long
Static Dim t as long
t=t+1
GetNextNumber = t
End Function

И вызывай ее из запроса. Только в параметр ей какое-нибудь поле передавай, а то она пересчитываться для каждой строки не будет.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250040
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там в одном из топиков fedd говорил "скажи зачем, а тебе скажут как без этого обойтись". Себестоимость продукции в общем смысле расчитывается как отношение всех затрат на производство продукции к количеству произведенной продукции за тот же период, а ленточные вычисления придумали чтобы упростить расчет на арифмометре.
В твоем случае себестоимость тоже можно вычислить как отношение всех затрат ко всему количеству:
1000/100=10
2000/160=12.5
2800/200=14.
...
Может поможет...
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250277
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Geo:
Можно нескромный вопрос? Ты у себя запускал этот код?
Просто у меня первое, что выдал, как это "Ошибка компиляции..." и сослался на Static. "Ладно", - думаю, - "Все равно я тебя нае#у" (это про Аксес). Написал несколько иначе:
Public k
Public Function GetNextNumber(a) As Long
Dim t As Long
'Static t
t = k + 1
k = t
GetNextNumber = k
End Function
(nfrbt pfgenrb c k и t сделал потому, что если просто оставить t, то присваивается только 1 (единица) во всем столбце.
Но этот код работает еще веселее. Если я кручу полосу прокрутки (записей всего несколько больше 6300 штук), то автоматом в столбце с этой функцией пересчитываются значения. Прокрутив два-три раза полосу туда-сюда, можно получить 12, а то и все 18 тысяч, если крутить отначала и до конца.
Итак, ничего не вышло. На выходных буду думать, какой код написать, чтобы все-таки это возможно было сделать.
----
----
То Roalex:
Ну с себестоимостью ты прав, но только в ОЧЕНЬ общем смысле. ;-)
Как рассчитать себестоимость - я знаю, но меня же интересует именно вариант построчного расчета, т.к. тут можно видешь на чем у нас растет себестоимость, а на чем уменьшается и насколько. Соответственно надо отследить момент, когда будет нерентабельно продавать материалы, как сопутствующая деятельность. Аналогично, надо на любой момент времени видеть по какой себестоимости списывать товар.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250286
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно - нет, конечно :)
Странно, что не работает... Чичас посмотрим
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250447
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я погорячился. :(\r
Для нумерации строк в запросе нужнен или уникальный ключ, или временная таблица...\r
Признаю себя ослом...\r
\r
/topic/3948
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250453
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь конечно тоже все можно отследить, но это все дело субьективное.
А что касается ленточных или как ты говоришь построчных вычислений, то лучше чем временная таблица и код на VBA(VB) я не встречал(наверное мало искал). Код пишется быстро и все в своих руках, а если долбаться с запросами, то потом,если надо что-то еще посчитать, зарываешься в такие дебри, что это только на любителя и для повышения профессионального уровня, но, ИМХО, не для создания действующих и постоянно изменяющихся проектов.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250560
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Geo:
Хе. сеньксь, кАнЭшна, но только этот ФАК уже у меня на компе в локальном виде дома лежит. Учора уже все что можно было выжать с форума - выжал.
Ну коли уж ты привел тот ФАК, то скажи, как сделать временную табличку с идентификатором не на скуле, а в mdb? Что-то у меня никак не выходит.
То Roalex:
Не понял, это ты про какие дебри? Я создаюзапрос для того, чтобы если что-то пропустил на какую-то дату (не ввели накладную или счет-фактуру), то автоматом бы пересчитывалась себестоимость с той даты и до текущего момента.
Time is up!
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32250853
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот о чем: в такой ситуации я создал бы временную таблицу и не компостировал бы себе ничего. А про дебри, вот что хотел скзать: вдруг потом в этот запрос, который решит твою задачу на настоящий момент, надо будет несколько усложнить (что-нибудь типа хитрого дополнительного условия), то долбаться надо не слабо, вместо того что-бы добавить один оператор в коде VBA.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32251036
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Roalex:
Ты невнимательно прочитал мой предыдущий пост. :( Я уже понял, что скорее всего это получится сделать только во временной табличке. Поэтому уже спросил, как ее создать, вернее не ее, а индекс в ней.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32251066
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать метод CreateIndex, или инструкцию SQL CREATE INDEX в зависимости от ситуации.
А можно индекс и не создавать для решения задачи :).
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32251152
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Static Dim t as long "
1/ с точностью до наоборот
Static t As Long.
2/ это условие - ключевое.
3/ второе ключевое условие - необновляемый запрос (distinct, group , или (по моему обязательно, но не помню) в [тип набора записей] = "Статический набор"). Тогда данные считаются 1 раз, и не пересчитываются при скроллинге.)

Ф-ю не смотрел. Но смысл статической переменной - служить накопителем при выходе из ф-ии. Применяется для расчета "агрегатов".
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32251264
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То assa:
Спасибо! Действительно, если поставить в запросе DISTINCT и "Статический набор записей", то данные не обновляются при скролле.
Только теперь очередная загвоздка: в запросе всего 6384 записи (на момент проверки их столько). Запустил запрос - все нормально. Закрыл, запустил заново первая запись начинается с 6385 и до 12768. :) Вот код:
Public Function GetNextNumber(a) As Long
Static t As Long
t = t + 1
GetNextNumber = t
End Function
Как его теперь обулить-то? В голову лезет только то, что можно посчитать сначала посчитать кол-во записей, которов возвращает сей запрос, а потом t сравнивать с этим значением и как только они равны - обнулять ее. Если убрать Паблик перед функцией, то ничего не меняется.
В принципе, основная задача решена - получить нумерованный список с шагом в 1, для дальнейшей обработки, посредством кода, который привел incold (Дата: 27 авг 03, 14:37). Но все же, хотелось до конца разобраться в этой ситуации.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32251295
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. статью Шермана (по моему). Там правильный вызов функций такого рода. На вскидку не помню. Ибо не пользуюсь :). Смысл -вызвать при вызове первой строки обнуление. Там разберешься.
...
Рейтинг: 0 / 0
расчет индексов, помогите
    #32251377
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То assa:
Тебя бы тоже расцеловал, будь ты тоже бабой!!!
Нашел. Дома буду смотреть и разбираться (на работе времени нет). Причем нашел еще массу полезного кода!!!
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / расчет индексов, помогите
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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