io non sono molto sicuro come chiedere questo, ma vorrei chiedere con l'esempio:Passando fila 'corrente' a una funzione in SQL Server
Ho una tabella al di là che non posso cambiare la struttura su. Registra i depositi in contanti presso i terminali ATM e dispone di una colonna per ogni taglio di banconote. In questo momento quando ho bisogno del valore complessivo di un deposito ho bisogno di codice come questo:
(rd.Count_R10 * 10) + (rd.Count_R20 * 20) + (rd.Count_R50 * 50) + (rd.Count_R100 * 100) + (rd.Count_R200 * 200)
Vorrei scrivere una funzione T-SQL che mi dà quel valore totale, ma per qualsiasi riga, non per un intero interrogazione, quindi la mia funzione sarebbe qualcosa di simile:
CREATE FUNCTION DepositTotal
(
@row ????
)
RETURNS money
AS
BEGIN
RETURN (row.Count_R10 * 10) + (row.Count_R20 * 20) + (row.Count_R50 * 50) + (row.Count_R100 * 100) + (row.Count_R200 * 200)
END
quindi vorrei chiamarlo qualcosa come:
select
DepositDate
, DepositTotal(thisRow)
, BatchId
from Deposits
+1 Views sarebbe la soluzione migliore per questo. –
Oppure implementare lo stesso come una colonna calcolata. La vista è meno invasiva anche se non si modifica lo schema della tabella sottostante. –