0

给定以下查询,我如何获得总Amount发票?Salesperson CodeCustomer

SELECT  l.[Customer No_], c.[Name], l.[Amount], c.[Salesperson Code], l.[Posting Date]
FROM    [Service Invoice Line] l join [Customer] c on 
        l.[Customer No_] = c.[No_]
Where   l.[Posting date] >= '10-01-2012'
        and c.[Salesperson Code] > ''
Group by l.[Customer No_],c.[Name],c.[Salesperson Code],l.[Amount],l.[Posting Date]
Order by l.[Customer No_]
4

1 回答 1

0

我不是以英语为母语的人,所以请耐心等待,我不太确定,什么

由客户按销售员代码开具发票

意味着(考虑到您的列名),所以我简化了您的示例查询(至于我如何理解它)

由于您想获得金额的总和,因此不要对其进行分组,将其从分组依据子句中删除。将 sum() 函数应用于金额列。

使用 group by 子句,您基本上是在折叠行组。但是您的数据库需要知道要为折叠组显示哪些行。因此,对于您在 select 子句中的每一列,您要么对其应用聚合函数,要么在 group by 子句中指定列。您的要求的一个例子是

SELECT  l.[Customer No_], c.[Name], c.[Salesperson Code], SUM(l.[Amount])
FROM    [Service Invoice Line] l join [Customer] c on 
        l.[Customer No_] = c.[No_]
Where   l.[Posting date] >= '10-01-2012'
        and c.[Salesperson Code] > ''
Group by l.[Customer No_], c.[Name], c.[Salesperson Code]

这将给您针对每个 customer_no / customer_name(假设一个 customer_no 不能有多个 customer_names)和每个 salesperson_code(假设每个客户有 1 个或多个 salesperson)的金额总和。

这是你想要的吗?

于 2013-09-20T16:24:39.120 回答