select count(grcm.acgrcmid) -- åñëè >= 1 òî ðàçðåøåíî, õîòÿ ïî èäåå áîëüøå 1 áûòü
-- íå äîëæíî - ñòðóêòóðà áàçû òàêîâà, ÿ íàäåþñü :)
into Result
from accgrcomm grcm, accgracc acgr
where
grcm.accgr = acgr.accgr
and grcm.allowed >= 1 -- âûáèðàåì ãðóïïû äëÿ êîòîðûõ ðàçðåøåíî
and grcm.allowed is not null -- âûáèðàåì ãðóïïû äëÿ êîòîðûõ ðàçðåøåíî
and grcm.comm = ncid
select c.cid -- âûáèðàåì êîìàíäó
from commands c
where c.name = vcommand)
and grcm.chnl in (
select ch.chid -- âûáèðàåì êàíàë
from channels ch
where ch.channel = vchannel
and ch.ntwrk = nnetwork
or ch.chid = 1
or ch.chid = 2)
and acgr.acc = naccid( -- âûáèðàåì ãðóïïó àêàóíòîâ
select ac.accid -- âûáèðàåì àêêàóíò
from accounts ac
where ( ac.locked = 0 -- àêêàóíò íå çåáëîêèðîâàí
or ac.locked is null)
and ac.logined >= 1 -- þçåð çàëîãèíåí
and ac.logined is not null
and ac.logusr = (
select u.usid from users u -- âûáèðàåì þçåðà
where u.nick = (
select n.nckid
from nicks n
where n.nick = vnick)
and u.usr = vusr
and u.host = vhost
and u.ntwork = nnetwork));