所以我有3个表连接,如下所示:总和SQL语句输出多行的时候我希望只有一个
我想要做的是所有持有的是落入总和查询在我的查询中为客户指定的条件。以下是我有:
SELECT Sum(Holdings.HoldingValue) AS SumOfHoldingValue
FROM (Clients INNER JOIN Accounts
ON Clients.ClientID = Accounts.ClientID)
INNER JOIN Holdings
ON Accounts.AccountID = Holdings.AccNum
GROUP BY Holdings.HoldingDate, Clients.Active, Clients.RiskCode, Clients.NewClient, Clients.BaseCurrency, Clients.ClientID
HAVING (((Holdings.HoldingDate)=#3/31/2013#)
AND ((Clients.Active)=True)
AND ((Clients.RiskCode) In (1,2))
AND ((Clients.NewClient)=True)
AND ((Clients.BaseCurrency)='GBP')
AND ((Clients.ClientID) Not In (10022,10082,10083)));
这里是我所得到的结果的一个例子:
SumOfHoldingValue
1056071.96
466595.6
1074459.38
371142.54
814874.42
458203.65
8308697.09
254733.94
583796.33
443897.76
203787.11
1057445.84
1058751.26
317507.43
因此,有客户端表相当多的标准,但其结果是SumOfHoldingValue
列表当我想要的只是一个数字。即所有持有价值的总和。为什么不把它们组合在一起形成一个总数?
添加以下SELECT语句:Holdings.HoldingDate,Clients.Active,Clients.RiskCode,Clients.NewClient,Clients.BaseCurrency,Clients.ClientID – wcm 2013-04-22 13:36:36
鉴于你是'GROUP',你可以在'SELECT'列表中包含这些'GROUP'列,而不会影响整个查询。然后您会看到不同的行对“RiskCode”和/或“ClientID”具有不同的值。 – 2013-04-22 13:37:30
好的,这是因为'ClientID'和'RiskCode'具有不同的值。即使它们不同,我怎样才能将所有事物分组? – harryg 2013-04-22 13:40:33