脚本对于每个具有帐户数量SQL的客户端

时间:2016-02-28 20:59:31

标签: sql sql-server while-loop

我必须承认我仍然是SQL的新手,我尝试做的是显示客户名称的查询,其中包含客户在其帐户中拥有的帐户数量,例如:

表:

dbo.Client

let sortedKeys = res.keys.sort()

func value(index:Int) -> String? {
    let key = sortedKeys[index]
    let value = res[key]
    return value
}

dbo.BankAccount

ClientId PK, BIGINT, NOT NULL
Name     VARCHAR, NOT NULL
Last     VARCHAR, NOT NULL
RFC      VARCHAR, NOT NULL 

通过查询来了解客户帐户

AccountId PK, BIGINT, NOT NULL
ClientId  FK, BIGINT, NOT NULL
NoAccount VARCHAR, NOT NULL
Balance   DECIMAL (18,2),NOT NULL
IsCredit  BIT, NOT NULL

显示下一个查询:

query

我想要展示的是例如这个表,其中列是" Number Account" 我想把他账户中每个客户的计数类型放在哪里......

SELECT * 
FROM [dbo].[Clientes] a
INNER JOIN [dbo].[CuentasBancarias] b ON a.ClienteId = b.ClienteId

Temporal

我试图创建一个脚本,但我对WHILE感到非常困惑......我被阻止或卡住......

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

1 个答案:

答案 0 :(得分:2)

根据我对您的要求的理解,您只需要一个计数和一组:

SELECT 
    a.ClienteId, 
    a.Apellidos,
    a.Nombre,
    a.RFC, 
    count(*) AS Temporal
FROM 
    [dbo].[Clientes] a
INNER JOIN 
    [dbo].[CuentasBancarias] b ON a.ClienteId = b.ClienteId
GROUP BY
    a.ClienteId, 
    a.Apellidos,
    a.Nombre,
    a.RFC

编辑:我将计数放在时间列