Dette er lidt langt til en kommentar.
SQL Server har et alternativ til visninger, som er brugerdefinerede funktioner . Især kan du have en UDF, der gør alt det følgende:
- Det kræver parametre.
- Det returnerer en tabel.
- Den er indlejret som en visning (det vil sige, "koden" er i det væsentlige indsat i forespørgslen, men det er lidt mere kompliceret end som så).
Jeg tænker på dem som "parameteriserede visninger".
Mit forslag er, at du opretter en brugerdefineret tabel-værdi inline-funktion, der tager de parametre, som du ville sætte i WHERE
klausul.
Den grundlæggende syntaks i dit tilfælde er:
CREATE FUNCTION ufn_sales_stats (
@compid int,
@target_date date
) RETURNS TABLE
AS
RETURN ( <your parameterized query here> );