Я пытаюсь выбрать все данные о комиссионных для одного из счетов, которые будут выплачивать комиссионные наибольшему количеству продавцов.(Множественные комиссии могут быть заплачены за каждый счет.) У меня есть только таблица CommissionReport, которая содержит комиссии для каждого продавца по каждому счету.
invoice_number salesperson_id commission_amt
---------------- ---------------- ----------------
1001 Bob 30.00
1002 Alison 64.50
1002 Charlie 110.25
Этот код работает нормально, но мое подсознание кричит, что яне нужно вложить подвыборки три глубоких.Может кто-нибудь, пожалуйста, поправьте меня?
select
invoice_number,
salespeson_id,
commission_amt
from
CommissionReport CR
join
( select top 1 invoice_number
from CommissionReport CR2
group by CR2.invoice_number
having count(*) =
( select max(CR3.cnt)
from
( select invoice_number,
cnt = count(*)
from CommissionReport CR4
group by invoice_number
) CR3
)
) CR2 on CR2.invoice_number = CR.invoice_number
Большое спасибо заранее.
Скотт