我正在尝试将Nvarchar
列添加到我在结果集中需要的选择列表中。但是当我执行时,我得到了这个错误:
列'dbo.SourceEntity.SourceName'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
我不需要聚合此列或group by
它。如何将此列添加到结果集中?这是我的代码:
SELECT distinct
la.Limit AS keyfield,
convert(varchar(100), se.SourceName) AS SourceEntity,
(la.Limit) AS Limit,
SUM(la.ARLimit) AS LAARLimit,
SUM(la.MTMLimit) AS LAMTMLimit,
SUM(la.Volume) AS LAMaxVolume,
SUM(la.MaxTenor) AS LAMaxTenor,
SUM(le.ARLimit) AS LEARLimit,
SUM(le.MTMLimit) AS LEMTMLimit,
SUM(le.Volume) AS LEMAxVolume,
SUM(le.MaxTenor) AS LEMaxTenor, SUM(la.ARLimit) + SUM(le.ARLimit) AS [ARLimit],
SUM(la.MTMLimit) + SUM(le.MTMLimit) AS [MTMLimit],
SUM(la.Volume) + SUM(le.Volume) AS [Volume],
SUM(la.MaxTenor) + SUM(le.MaxTenor) AS [MaxTenor]
FROM
dbo.LimitAllocation AS la
INNER JOIN
dbo.LimitExtension AS le ON la.Limit = le.Limit AND la.Limit = le.Limit
inner join
dbo.SourceEntity as se on la.SourceEntity = le.SourceEntity
GROUP BY la.Limit
答案 0 :(得分:0)
尝试使用此功能,您将在结果集中获得额外的列。
select *,convert(varchar(100), SourceName) AS SourceEntity
from (
SELECT distinct
la.Limit AS keyfield,
(la.Limit) AS Limit,
SUM(la.ARLimit) AS LAARLimit,
SUM(la.MTMLimit) AS LAMTMLimit,
SUM(la.Volume) AS LAMaxVolume,
SUM(la.MaxTenor) AS LAMaxTenor,
SUM(le.ARLimit) AS LEARLimit,
SUM(le.MTMLimit) AS LEMTMLimit,
SUM(le.Volume) AS LEMAxVolume,
SUM(le.MaxTenor) AS LEMaxTenor,
SUM(la.ARLimit) + SUM(le.ARLimit) AS [ARLimit],
SUM(la.MTMLimit) + SUM(le.MTMLimit) AS [MTMLimit],
SUM(la.Volume) + SUM(le.Volume) AS [Volume],
SUM(la.MaxTenor) + SUM(le.MaxTenor) AS [MaxTenor]
FROM dbo.LimitAllocation AS la
INNER JOIN dbo.LimitExtension AS le ON la.Limit = le.Limit AND la.Limit = le.Limit
inner join dbo.SourceEntity as se on la.SourceEntity = le.SourceEntity
GROUP BY la.Limit
) as p;