【发布时间】:2018-09-19 09:00:08
【问题描述】:
我在 Microsoft SQL Server 中使用 AventureWorks2014 数据库。我需要创建一个视图来显示CustomerID、全名和通过网络销售给客户的总金额。
我的问题是,我似乎无法将与单个客户对应的值加起来,以便单个客户回答我的结果中的单行。这是我的代码,任何帮助将不胜感激。我基本上需要显示在网络上销售给客户的总金额。
if object_id('vTotalWebSalesPerCustomer', 'v') is not null
drop view vTotalWebSalesPerCustomer;
go
create view vTotalWebSalesPerCustomer
as
select distinct
c.CustomerID,
ltrim(rtrim(concat(concat(concat(concat(concat(concat(concat(p.Title, ' '), p.LastName), ', '), ' '), p.FirstName), ' '), p.Suffix))) as NomClient,
soh.TotalDue
from
[Sales].[Customer] as c
left join
[Person].[Person] as p on c.CustomerID = p.BusinessEntityID
left join
[Sales].[SalesOrderHeader] as soh on soh.CustomerID = c.CustomerID
where
year(soh.OrderDate) = 2014
and datepart(quarter, soh.OrderDate) = 1
and [OnlineOrderFlag] = 1
go
select *
from vTotalWebSalesPerCustomer
谢谢
【问题讨论】:
-
你有
select distinct,所以根据定义,结果集中没有重复的行。 -
当我运行我的视图时,我从这个客户所做的所有不同交易中多次获得具有不同销售价值的相同 CustomerID。这就是我试图把togheter。我需要为每个客户分别计算 soh.TotalDue 的总和。
-
您使用的是 T-SQL (MSSQL)?
-
是的,我正在使用 transact-sql
标签: sql-server sum duplicates distinct