Абе и аз като го гледам на второ четене видях, че не е каквото трябва. Сещам се как да стане със съхранена процедура и като компенсация ще я напиша сега даже да вади и диаграма:
CREATE PROCEDURE SP_CONNECTIONS (
/*START_INTERVAL и END_INTERVAL - интервала за който вадим диаграмата*/
START_INTERVAL TIMESTAMP,
END_INTERVAL TIMESTAMP)
RETURNS (
/*FROMTM и TOTM - интервалче в границите на което има конект/дисконект*/
/*CONNECTIONS - брой сесии в интервалчето*/
/*Ако пуснеш select MAX(CONNECTIONS) from SP_CONNECTIONS (:V4ERA,DNESKA)*/
/*ще намериш каквото ти трябва*/
FROMTM TIMESTAMP,
TOTM TIMESTAMP,
CONNECTIONS INTEGER)
AS
begin
FROMTM=:START_INTERVAL;
for
select e1.LOGINTIME as TM
from expired e1
where e1.logintime between :START_INTERVAL and :END_INTERVAL
union
select e2.LOGOUTTIME as TM
from expired e2
where e2.logouttime between :START_INTERVAL and :END_INTERVAL
order by 1
into :TOTM
do begin
select count(*)
from expired
where :FROMTM between LOGINTIME and LOGOUTTIME
and :TOTM between LOGINTIME and LOGOUTTIME
into :CONNECTIONS;
suspend;
FROMTM=:TOTM;
end
end