Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];

Вниз

Увеличение скорости обработки данных о клиентах.   Найти похожие ветки 

 
Hermit   (2002-02-14 12:04) [4]

To Fareder: В одном запросе не получается. Почему? Потому что каждая из упомянутых величин расчитывается по данным из разных таблиц. Вот, например, как получаются среднедневные остатки (СДО) :
1) Выполняем запрос:
select codeokpo, nulltozero(
(select incom+
nulltozero((select sum((credit-debit)*
(:LastDate - dtend + 1))/
(:LastDate - :FirstDate + 1)
from saldo s2
where dtend between :FirstDate and :LastDate and
idacc=s1.idacc and
currency=s1.currency))
from saldo s1
where s1.idacc=A.idacc and
s1.currency=A.currency and
dtend=(select min(dtend)
from saldo
where idacc=s1.idacc and
currency=s1.currency and
dtend>=:FirstDate ))) Amount
from accowner_account A
where A.currency=:UAH and
%SQLWhere
SQLWhere - это очень обширное условие, содержащее перечень счетов (их маски), задаваемых пользователем на клиенте.
2) Записываем результат выполнения этого запроса во временную таблицу Import.
3) Выполняем запрос:
select codeokpo, sum(Amount) SDO
from Import
group by 1

В результате получаем СДО в разрезе каждого клиента.
Если же вспомнить что таких величин 8, то просто непредставляется возможным засунуть эти расчеты в один запрос.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.005 c
1-43027
Michael C
2002-02-26 10:03
2002.03.14
Ув. мастера. Немогу сравнить два str значения...


7-43187
Kostya Luzan
2001-12-08 03:59
2002.03.14
Эмулировать СОМ


4-43217
Renard
2002-01-15 23:15
2002.03.14
Как узнать какая структура находится под крысой: ListBox, Edit, Button и т.д.


3-42911
Destroyer
2002-02-14 08:08
2002.03.14
DBGrid и транзакции


1-43085
UserL
2002-02-14 08:06
2002.03.14
ImageList





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский