0

我想显示一个人提出的申请总数的总和。

我试过这个:

SELECT DISTINCT custID, firstName, AppID, AppDate, Amount
FROM CustTable
JOIN AppTable ON custID = AppID

我每个客户有很多行,并且想对每个客户的总申请量求和

目前我看到这样的事情:

1 | Jon | APP_1 | 200 
1 | Jon | APP_2 | 200
1 | Jon | APP_3 | 200
1 | Jon | APP_4 | 200

但我想要(最好有日期范围):

1 | Jon | APP_1 | 800
4

3 回答 3

1

你可以这样做:

select custID, firstName, sum(Amount)
FROM CustTable
JOIN AppTable
ON custID = AppID
group by custID, firstName

这将返回:

1 | Jon | 800

此外,您可以有这样的日期范围:

select custID, firstName, sum(Amount), 
       min(AppDate) firstDate, max(AppDate) lastDate, 
FROM CustTable
JOIN AppTable
ON custID = AppID
group by custID, firstName

这将返回如下内容:

1 | Jon | 800 | 2013-01-01 | 2013-01-28
于 2013-04-18T14:22:33.550 回答
0

根据您表中的不同,我假设您也希望将其按 AppDate 分组:

SELECT custID, firstName, AppID, AppDate, SUM(Amount) AS Amount 
FROM CustTable
JOIN AppTable
ON custID = AppID

GROUP BY custID, firstName, AppID, AppDate

您的结果列表没有 AppDate,因此当不按 AppDate 对值进行分组时,您必须这样做:

SELECT custID, firstName, AppID, SUM(Amount) AS Amount 
FROM CustTable
JOIN AppTable
ON custID = AppID

GROUP BY custID, firstName, AppID

如果你想

1 | Jon | APP_1 | 800 

如在您的示例中,以字母顺序的第一个应用程序 ID 作为名称,它将是这样的

SELECT custID, firstName, MIN(AppID) AS AppID, SUM(Amount) AS Amount 
FROM CustTable
JOIN AppTable
ON custID = AppID

GROUP BY custID, firstName

但老实说,在结果中包含 APP_1 并没有多大意义。

于 2013-04-18T14:22:03.683 回答
0

这是一个基本group by查询:

SELECT custID, COUNT(*) as Num, SUM(Amount) as TotalAmount
FROM CustTable JOIN AppTable
     ON custID = AppID
group by custId

但是,我看不到输出中第三列“APP1”在做什么。

于 2013-04-18T14:22:45.150 回答