在T-SQL查询中对nvarchar数据类型使用GROUP BY子句

时间:2015-06-05 10:09:17

标签: sql-server group-by

我正在使用SQL SERVER 2014.我的查询如下:

SELECT [PMSConfirmationNumber],[AR ACCOUNT NAME],sum([FOC NET AMOUNT]) AS [FOC_NET AMOUNT]

 FROM ARACCOUNT
 WHERE [PMSCONFIRMATIONNUMBER] = '81827436-1'
 Group by [PMSConfirmationNumber],[AR ACCOUNT NAME],[FOC NET AMOUNT]

但是,PMSCONFIRMATIONNUMBER字段是NVARCHAR数据类型,我有以下输出:

 PMSConfirmationNumber  AR ACCOUNT NAME          FOC_NET AMOUNT
    81827436-1               TRltd                  1400
    81827436-1               TRltd                   600

因为我在初始查询中使用了SUM(FOC NET AMOUNT),所以我遵循以下输出:

  PMSConfirmationNumber       AR ACCOUNT NAME        FOC_NET AMOUNT
         81827436-1              TRltd                  2000

如何修改查询?研究这个主题,我遇到了'PARTITION BY'条款,但我在查询中遇到了一些困难。

1 个答案:

答案 0 :(得分:2)

这与nvarchar类型无关。问题是您在group by子句中包含聚合的列。

从group by子句中删除[FOC NET AMOUNT]。它不应该存在,因为它在聚合函数中使用,因此不是分组的一部分。