Форум: "Начинающим";
Текущий архив: 2008.12.14;
Скачать: [xml.tar.bz2];
ВнизИспользование агр.ф-ций на временных таблицах в IB Найти похожие ветки
← →
Проходящий (2008-11-01 12:01) [0]Доброго времени суток, уважаемы мастера. У меня до безобразия глупый вопрос. Он заключается в следующем. Я создаю запрос в IBQUERY где использую несколько разных таблиц. И мне теперь необходимо по новой "временной" таблице провести некоторые вычисления, таких как Count, Max, Sum. Вот только проблема. Никак не получается создать выборку, используя ее для агр. ф-ций, используя временный набор. Просмотрел литературу, там в основном как правило вложение запроса после Where идет при сравнении столбцов и т.д. А мне нужно производить подсчет во вновь организованной таблице Select на основе нескольких таблиц. Не подскажите как можно сформулировать запрос что то вроде Select Count(*) form Table where Table = (select.....моя таблица). Или есть ли возможность объединить другой IBQuery, который бы обратился к dataset первого Query. Конечно, есть возможность обработки временной таблицы программным способом в стиле пробега по столбцам и строкам от first до eof(query). Но думаю это оставить на последний способ применения. Не подскажите, мастера, как можно решить поставленную задачу?
← →
Johnmen © (2008-11-01 12:14) [1]Именно "последним способом". Если не получилось агрегировать в запросе.
Предполагаю, что возможно в запросе, просто ты не смог...:)
← →
Проходящий (2008-11-01 12:31) [2]Как раз таки и не получится при сборе нескольких таблиц :) вот просто так применить агрегатные функции, ввиду того, что при использовании запроса на образование временной "сводной" таблицы по которому требуется провести некоторый расчет используются разные ключи. А над временной таблицей, например, нужно провести всего лишь пару расчетов, и уже исходя из полученных данных, вновь организовывать временную таблицу, которая будет базироваться как полученном расчете предыдущей, плюс другие ключи из других таблиц. А вся литература, которую я просматривал не использует вариант построения запроса, который я привел в [1]. Вот и пытаюсь сообразить, как можно решить поставленную задачку :).
← →
Сергей М. © (2008-11-01 12:44) [3]
> Проходящий
Все это беллетристика)
Ты скажи кратко и внятно - конкретный твой запрос компилируется или нет ?
Если не компилируется, то по какой конкретно причине ?
Если компилируется и даже работает, но не так как тобой ожидалось, то все равно без текста конкретного запроса сказать ничего нельзя..
Надеюсь. ты в курсе, что в IB кроме DSQL существует еще и PSQL ?
← →
Johnmen © (2008-11-01 13:53) [4]
> Проходящий (01.11.08 12:31) [2]
Если не удаётся сразу, единственным запросом, получить потребное клиентскому приложению, то посмотри в сторону VIEW и хранимых процедур.
← →
Проходящий (2008-11-01 14:19) [5]Постараюсь привести один запросов:
IBQuery_Report.SQL.Add("Select B.ACHRTYPE as "Тип автоматики", B.Region as "Район", B.OBJECT as "Объект", B.CONSUMER as "Присоединение", "+
"B.NUM_OCHERED_ACHR as "№ очереди", B.FREQ_ACHR as "F.cp", B.VREMYA_ACHR as "T.cp", B.CH_APV as "ЧАПВ", B.NUM_OCHERED_APV as "№ очереди ЧАПВ", "+
"B.FREQ_APV as "F.cp.apv", B.VREMYA_APV as "T.cp.apv", P.D_Date as "Дата", P.P_MIN as "Pmin", P.P_MAX as "Pmax" from A4R_BASETABLE B, POWER_A4R P " +
"Where B.ID_STR = P.ID_LINE AND P.D_DATE = :data1 Order by B.ACHRTYPE, B.Region, B.OBJECT, B.CONSUMER" );
Вот я получил таблицу. Мне в ней нужно вычислить следующее:
Общий объема АЧР-1: Sum(pmax) where B.ACHRTYPE:="АЧР-1", b.ID_str= P.ID_LINE, P.D_DATE = :data1
в том числе АЧР-1 Запад: сравнение по Region.
в регионе Запад: 1 очередь - сравненеи с NUM_OCHERED_ACHR
2 чередь -...
Восток:
и т.д.
и вот так у меня должен строится расчетный список.
← →
Проходящий (2008-11-01 14:20) [6]Johnmen © (01.11.08 13:53) [4]
у меня возникала мысль создать View. Надо будет обдумать этот вариант.
← →
Проходящий (2008-11-01 14:21) [7]Johnmen © (01.11.08 13:53) [4]
у меня возникала мысль создать View. Надо будет обдумать этот вариант.
← →
Проходящий (2008-11-01 14:21) [8]извеняюсь, что лагнула связь
← →
Правильный$Вася (2008-11-01 21:50) [9]
> временных таблицах в IB
нет там такого понятия
а ХП очень были бы к месту, хотя в твоем случа и вьюхой, вероятно,можно обойтись, если никаких параметров хитрых в запросе нет
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.12.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c