Det här är lite långt för en kommentar.
SQL Server har ett alternativ till vyer som är användardefinierade funktioner . I synnerhet kan du ha en UDF som gör allt följande:
- Det krävs parametrar.
- Den returnerar en tabell.
- Det är infogat som en vy (det vill säga "koden" är i huvudsak infogat i frågan, men det är lite mer komplicerat än så).
Jag tänker på dem som "parameteriserade vyer".
Mitt förslag är att du skapar en användardefinierad tabellvärderad inline-funktion som tar de parametrar som du skulle lägga i WHERE
klausul.
Den grundläggande syntaxen i ditt fall är:
CREATE FUNCTION ufn_sales_stats (
@compid int,
@target_date date
) RETURNS TABLE
AS
RETURN ( <your parameterized query here> );