>Dovrei fare una view che estrae campi da una tabella in base
>a un valore inserito dall'utente
Ciao Hamelin [FL],
Da come definisci le variabili mi sembra di capire che tu stia utilizzando SQL Server, giusto?
Lo standard ANSI SQL al quale aderisce anche SQL Server non prevede viste parametriche pertanto devi optare per una soluzione alternativa.
A partire dalla versione 2000, SQL Server offre 3 tipi di user-defined functions (UDF) ed uno di essi può essere accomunato ad una vista parametrica.
Cercherò di mostrarti un piccolo esempio:
USE tempdb;
GO
/* Definisco la Inline Table-valued function dbo.udf_GetOrdersByDate */
CREATE FUNCTION dbo.udf_GetOrdersByDate(
@OrderDate smalldatetime
)
RETURNS TABLE
AS
RETURN(
SELECT OrderID, CustomerID, OrderDate
FROM Northwind.dbo.Orders
WHERE OrderDate = @OrderDate
)
GO
/* Esempi */
SELECT *
FROM dbo.udf_GetOrdersByDate('19960704');
GO
/* Output:
OrderID CustomerID OrderDate
----------- ---------- ------------------------
10248 VINET 1996-07-04 00:00:00.000
(1 row(s) affected)
*/
SELECT *
FROM dbo.udf_GetOrdersByDate('19960719');
GO
/* Output:
OrderID CustomerID OrderDate
----------- ---------- ------------------------
10260 OTTIK 1996-07-19 00:00:00.000
10261 QUEDE 1996-07-19 00:00:00.000
(2 row(s) affected)
*/
/* Pulizia */
DROP FUNCTION dbo.udf_GetOrdersByDate;
Se sei interessato ad approfondire l'argomento UDF, leggi il seguente paragrafo sui Books Online:
http://msdn.microsoft.com/library/en-us/tsqlref/ts_create_7r1l.asp
Inoltre ho notato che nei tuoi esempi utilizzi un formato data non standard.
Prova a leggere il seguente tip:
http://www.dotnethell.it/tips/SQLServerDates.aspx
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org