where句に集計を入れることができないため、以下のクエリを実行していますが、サブクエリにあることを考えると、ここから先に進むための最善の方法が完全にはわかりません...!
動作しない行は次のとおりです。
(select gradeid from commissionconsultants where UserId = ic.primaryconsultantid)
and starters = COUNT(*) ) from InvoiceCommissions ic
そして、完全なクエリは次のとおりです。
select u.username + ' ' + u.surname as UserName,
ic.primaryconsultantid,
COUNT(ic.invoiceid) as starters,
DATENAME(mm,ic.invoiceissueddate) AS [month],
DATEPART(yy,ic.invoiceissueddate) as [year],
cast(SUM((ic.value / ic.exchangerate) * (ic.primaryconsultantperc / 100)) as numeric(8,2)) AS totalvalue,
(select threshold from commissiongrades where gradeid =
(select gradeid from commissionconsultants where UserId = ic.primaryconsultantid) ) AS Threshold,
(select percentage from commissiongradevalues where gradeid =
(select gradeid from commissionconsultants where UserId = ic.primaryconsultantid)
and starters = COUNT(*) ) from InvoiceCommissions ic
inner join commissionconsultants cc on cc.userid = ic.primaryconsultantid
inner join Users u on u.UserId = ic.primaryconsultantid
group by primaryconsultantid, DATENAME(mm,invoiceissueddate), DATEPART(yy,invoiceissueddate), u.username + ' ' + u.surname
本質的に、私がやろうとしているのは、コンサルタントのグレード(コミッションコンサルタントにあります)と特定の月に行われた配置の数に基づいて、テーブル(コミッショングレード値)からコミッションのパーセンテージを検索することです。
たとえば、コンサルタントが1か月に1回のプレースメントを行った場合、そのコミッションの割合はXXになり、1か月に2回のプレースメントを行った場合、YYのコミッションの割合になります。
何か案は?