2016-03-02 2 views
0

У меня есть вопрос с моим сценарием, мой сценарий отчасти хорошо рассчитан для конкретного клиента, но мне нужно сделать для всех клиентов, не запрашивая требуемые данные клиента чтобы обновить его количество, а также соответствующий код для расчета всех клиентов?сценарий для расчета остатка на счете на основе депозитов и снятия средств

Вот мой сценарий:

DECLARE @RFC VARCHAR(100) 
DECLARE @Nombre VARCHAR(100) 
DECLARE @Apellidos VARCHAR(100) 
DECLARE @NoCuenta VARCHAR(50) 

SET @RFC = '' 
SET @Nombre = '' 
SET @Apellidos = '' 

--Suma de los depósitos 
SELECT SUM(Monto) FROM [dbo].[Depositos] a 
INNER JOIN [dbo].[Clientes] b 
ON a.CuentaId = b.ClienteId 
WHERE b.Nombre = @Nombre and b.RFC = @RFC and b.Apellidos = @Apellidos and 

--sum of retires 

SELECT SUM(Monto) FROM [dbo].[Retiros] a 
INNER JOIN [dbo].[Clientes] b 
ON a.CuentaId = b.ClienteId 
WHERE b.Nombre = @Nombre and b.RFC = @RFC and b.Apellidos = @Apellidos 

--Calculation of the total balance on the basis of deposits and withdrawals 
DECLARE @Deposito DECIMAL 
DECLARE @Retiro DECIMAL 
DECLARE @Total DECIMAL 
DECLARE @NoCuenta VARCHAR(50) 

SET @Deposito = (SELECT SUM(Monto) FROM [dbo].[Depositos] a 
INNER JOIN [dbo].[Clientes] b 
ON a.CuentaId = b.ClienteId 
WHERE b.Nombre = 'Marco' and b.RFC = 'sadfasfasfadsf') 

SET @Retiro = (
SELECT SUM(Monto) FROM [dbo].[Retiros] a 
INNER JOIN [dbo].[Clientes] b 
ON a.CuentaId = b.ClienteId 
WHERE b.Nombre = 'Marco' and b.RFC = 'sadfasfasfadsf') 

SET @Total = (@Deposito - @Retiro) 
SELECT @Total 

SET @NoCuenta = '123456' 

UPDATE A SET 
Saldo = @Total FROM [dbo].[CuentasBancarias] A 
WHERE NoCuenta = @NoCuenta 

SELECT * FROM [dbo].[CuentasBancarias] WHERE NoCuenta = @NoCuenta 

Таблицы:

databasebank

Данные каждого клиента:

enter image description here

+0

P арендовать редактируйте свой вопрос, чтобы включить соответствующие таблицы ddl-операторов, некоторые примеры данных dml-операторов и желаемый результат. –

+0

также не могли бы вы перевести: Recalculo del saldo total en base de depósitos y retiros – TheGameiswar

+0

@TheGameiswar Calculation for Total Ammount, основанный на депозитах и ​​уходит. –

ответ

0
UPDATE CuentasBancarias SET 
    Saldo = 
     ISNULL((SELECT SUM(Monto) FROM [dbo].[Depositos] a ON a.CuentaId = CuentasBancarias.ClienteId), 0) 
     - 
     ISNULL((SELECT SUM(Monto) FROM [dbo].[Retiros] a ON a.CuentaId = CuentasBancarias.ClienteId), 0) 
+0

'SELECT cols FROM tbl ON conds' недействителен TSQL. –

Смежные вопросы