Dit is een beetje lang voor een opmerking.
SQL Server heeft een alternatief voor weergaven die door de gebruiker gedefinieerde functies . U kunt met name een UDF hebben die al het volgende doet:
- Er zijn parameters nodig.
- Het geeft een tabel terug.
- Het is inline als een weergave (dat wil zeggen, de "code" wordt in wezen ingevoegd in de query, maar het is iets gecompliceerder dan dat).
Ik zie ze als "geparametriseerde weergaven".
Mijn suggestie is dat u een door de gebruiker gedefinieerde inline-functie met tabelwaarde maakt die de parameters overneemt die u in de WHERE
zou plaatsen clausule.
De basissyntaxis in uw geval is:
CREATE FUNCTION ufn_sales_stats (
@compid int,
@target_date date
) RETURNS TABLE
AS
RETURN ( <your parameterized query here> );