È un po' lungo per un commento.
SQL Server offre un'alternativa alle viste che sono funzioni definite dall'utente . In particolare, puoi avere una UDF che fa tutto quanto segue:
- Richiede parametri.
- Restituisce una tabella.
- È inline come una vista (ovvero, il "codice" è essenzialmente inserito nella query, ma è un po' più complicato di così).
Li considero "viste parametrizzate".
Il mio suggerimento è di creare una funzione inline definita dall'utente con valori di tabella che prenda i parametri che inseriresti in WHERE
clausola.
La sintassi di base nel tuo caso è:
CREATE FUNCTION ufn_sales_stats (
@compid int,
@target_date date
) RETURNS TABLE
AS
RETURN ( <your parameterized query here> );