Select Kard, Dat1, Count(Kard)
from Base
group by Kard, Dat1
Having Count(Kard) > Kol
declare @findmax table
(KardM bigint, Dat1M datetime, maxC int)
insert into @findmax
select Kard, Dat1, count(Kard)
from Base
group by Kard, Dat1
having count(Kard) > Kol
select Kard, Dat1, max(maxC) from @findmax, orders
where Kard = KardM
and Dat1 = Dat1M
group by Kard, Dat1
order by 1
select b.Kard, b.Dat1, count(b.Kard)
from Base b,
(select Kard, max(ck) as ck1 -- начало поиска максимального значения count(Kard) для каждого значения Kard
from
(select Kard, Dat1, count(Kard) as ck -- начало выборки Kard, Dat1, count(Kard)
from Base
group by Kard, Dat1
having count(Kard) > Kol) t1 -- конец выборки Kard, Dat1, count(Kard). Заодно ее объявляем таблицей t1
group by Kard) t2 -- конец поиска максимального значения count(Kard) для каждого значения Kard. Заодно объявляем его как таблицу t2.
where t2.Kard = b.Kard
group by b.Kard, b.Dat1, ck1
having count(b.Kard) = ck1 -- условие, что количество Kard в этот день было максимальным.
order by 1
SELECT A.CARD, A.DAT1, COUNT(*) COUNT_WORK FROM TEST A
WHERE (SELECT COUNT(*) FROM TEST T WHERE T.CARD = A.CARD AND T.DAT1 = A.DAT1) > 1
GROUP BY A.CARD, A.DAT1
SELECT CARD, DAT1, MAX(KOL) KOL FROM
(
SELECT CARD, DAT1, COUNT(*) KOL FROM TEST A
GROUP BY CARD, DAT1
) T GROUP BY CARD, DAT1
HAVING MAX(KOL) >= (SELECT MAX((SELECT COUNT(*) FROM TEST C WHERE C.CARD = B.CARD AND C.DAT1 = B.DAT1 )) FROM TEST B WHERE B.CARD = T.CARD)
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.