如何获取SQL Server 2005中money
数据类型列的总和?
我收到错误
操作数数据类型nvarchar对sum运算符无效。
当我使用
时sum(AmountSold) as Amount
提前致谢!
完整查询是这样的:不在此处添加组,因为它列出了超过15列。
SELECT *,
COUNT(RepDailyCollection.CommunityID) AS DaysinTown,
SUM(CAST(RepDailyCollection.AmountSold AS MONEY)) AS TownValue,
SUM(RepDailyCollection.Spots) AS Spots,
SUM(RepDailyCollection.AmountCollected) AS Collected,
CommuniTee.StartDate AS StartDate,
Community.EndDate AS EndDate,
Community.IsClosed AS TownStatus
FROM Community
INNER JOIN RepDailyCollection
ON RepDailyCollection.CommunityID = Community.CommunityID
WHERE Community.RepID = @RepID
另外,使用Create table query
进行编辑CREATE TABLE [dbo].[RepDailyCollection](
[RepDailyCollectionID] [bigint] IDENTITY(7500,1) NOT NULL,
[RepDailyInfoID] [bigint] NOT NULL,
[CommuniTeeID] [int] NULL,
[AmountSold] [money] NULL,
[AmountCollected] [money] NULL,
[Spots] [nvarchar](50) COLLATE Latin1_General_CI_AI NULL,
[IsCleared] [bit] NOT NULL,
[PaymentMethod] [nvarchar](50) COLLATE Latin1_General_CI_AI NULL,
[CheckNumber] [bigint] NULL,
[Invoice] [nvarchar](50) COLLATE Latin1_General_CI_AI NULL,
[TypeofCreditCard] [nvarchar](30) COLLATE Latin1_General_CI_AI NULL,
[OrderID] [int] NULL,
[NewCompanyName] [nvarchar](100) COLLATE Latin1_General_CI_AI NULL,
[PaymentDate] [datetime] NULL
) ON [PRIMARY]
答案 0 :(得分:3)
如果您使用nvarchar
作为数据类型,则无法使用聚合函数SUM()
。该错误指出AmountSold
列的数据类型为nvarchar
,而不是money
。
如果您的AmountSold
列确实以nvarchar
的形式创建数字数据,则可以执行以下操作:
sum(cast(AmountSold as money))
编辑:查看CREATE TABLE
命令后,问题是Spots
属于nvarchar
数据类型,而您正试图调用{{1}在sum()
上。这就是你收到错误的原因。
如果Spots
确实创建了数字数据,那么您需要执行以下操作:
Spots