1
我必须承认我仍然是SQL的新手,我试图做的是显示客户名称与客户在其账户中拥有的账户数量的查询例如:脚本对于每个拥有账户数量的客户端SQL
表:
dbo.Client:
ClientId PK, BIGINT, NOT NULL
Name VARCHAR, NOT NULL
Last VARCHAR, NOT NULL
RFC VARCHAR, NOT NULL
dbo.BankAccount:
AccountId PK, BIGINT, NOT NULL
ClientId FK, BIGINT, NOT NULL
NoAccount VARCHAR, NOT NULL
Balance DECIMAL (18,2),NOT NULL
IsCredit BIT, NOT NULL
通过使查询了解客户账户
SELECT *
FROM [dbo].[Clientes] a
INNER JOIN [dbo].[CuentasBancarias] b ON a.ClienteId = b.ClienteId
显示一个查询:
我想表明的是,例如这个表,其中列“号账户“ 是我想要把他的账户的每个客户的计数类型...
SELECT DISTINCT (a.ClienteId),
a.Apellidos, a.Nombre, a.RFC,
'Number Account' AS Temporal
FROM
[dbo].[Clientes] a
INNER JOIN
[dbo].[CuentasBancarias] b ON a.ClienteId = b.ClienteId
我试图创建一个脚本,但我得到非常困惑与WHILE ...和我堵塞或卡住...
DECLARE @puntocliente BIGINT
DECLARE @Cuentas BIGINT
SET @puntocliente = 1
SET @Cuentas = 0
WHILE @puntocliente <= (SELECT DISTINCT(ClienteId) FROM [dbo].[CuentasBancarias] WHERE ClienteId = @puntocliente)
BEGIN
SET @puntocliente = @puntocliente + 1
WHILE @puntocliente <= @puntocliente
BEGIN
SELECT DISTINCT(ClienteId) FROM [dbo].[CuentasBancarias] WHERE ClienteId = @puntocliente
END
SELECT @puntocliente
SELECT *
FROM [dbo].[Clientes] a
INNER JOIN [dbo].[CuentasBancarias] b ON a.ClienteId = b.ClienteId
WHERE a.ClienteId = @puntocliente
END
我会upvote这是为了兑现你的支持,摆脱循环:-) – Shnugo