【发布时间】:2020-10-08 20:05:04
【问题描述】:
通过我所做的所有研究,我无法理解这个错误。我有以下查询
SELECT M.[PO Concatenate], Sum(M.SumofAward) AS TotalAward, (SELECT TOP 1 M1.[Material Group] FROM
[MGETCpreMG] AS M1 WHERE M1.[PO Concatenate]=M.[PO Concatenate] ORDER BY M1.SumofAward DESC) AS TopGroup
FROM MGETCpreMG AS M
GROUP BY M.[PO Concatenate];
作为一个简短的例子,它会查看我想要的结果,但是随后出现“此子查询最多可以返回一条记录”错误并将所有数据擦除到#Name?
就上下文而言,[MGETCpreMG] 是对主表 [MG ETC] 的查询,用于合并 PO 事务中不同材料组的奖励 ([PO Concatenate])
SELECT [MG ETC].[PO Concatenate], Sum([MG ETC].Award) AS SumOfAward, [MG ETC].[Material Group]
FROM [MG ETC]
GROUP BY [MG ETC].[PO Concatenate], [MG ETC].[Material Group]
ORDER BY [MG ETC].[PO Concatenate];
我认为这是因为我无法理解如何使用子查询。
【问题讨论】:
-
您可以使用它来查找有问题的匹配项:
SELECT [PO Concatenate] FROM [MGETCpreMG] GROUP BY [PO Concatenate] HAVING COUNT(*) > 1 -
@shawnt00 我已经浏览了您的链接和 Allen's Browne 的网站,但仍然找不到解决问题的方法。您的最新代码确实帮助我识别有问题的匹配,但由于我的数据集的性质,将重复 PO Concatenates。也许我将不得不使用没有重复的 PO Concatenate 的不同表/查询