我对我的脚本有疑问,我的脚本部分很好地计算了特定的客户端,但我需要的是为所有客户做的而不要求客户数据需要更新其数量,因为适当的代码计算所有客户?
这是我的剧本:
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
表格:
每个客户的数据:
答案 0 :(得分:1)
UPDATE CuentasBancarias SET
Saldo =
ISNULL((SELECT SUM(Monto) FROM [dbo].[Depositos] a INNER JOIN [dbo].[CuentasBancarias] ON a.CuentaId = CuentasBancarias.ClienteId), 0)
-
ISNULL((SELECT SUM(Monto) FROM [dbo].[Retiros] a INNER JOIN [dbo].[CuentasBancarias] ON a.CuentaId = CuentasBancarias.ClienteId), 0)