我的SQL查询是
select ID, ModuleID,
(SELECT ((CAmount * CPercentage)/100) FROM Table1 ) as Percentage
from Table1
order by ModuleID ;
如果只有一个值,它可以正常工作,但如果有多个值,我会收到错误。如何处理它,我希望表中的所有金额都转换为相应的百分比,请帮助。
答案 0 :(得分:2)
你可以使用
SELECT TOP 1 ((CAmount * CPercentage)/100) FROM Table1
但这取决于你的内涵......
答案 1 :(得分:0)
或者...
select ID, ModuleID,
(SELECT ((SUM(CAmount) * SUM(CPercentage))/100) FROM Table1 ) as Percentage
from Table1
order by ModuleID ;
这将成功处理多个值。
答案 2 :(得分:0)
令我觉得有点奇怪,你的子查询使用与主查询相同的表。看起来您正在尝试获取每个模块的百分比,因此获取整个表的百分比可能是错误的结果。
除非我误解你的意图,否则我希望这是正确的查询:
SELECT ID, ModuleID, SUM((CAmount * CPercentage)/100) AS Percentage
FROM Table1
ORDER BY ModuleID
答案 3 :(得分:0)
如果要计算每条记录的值,则根本不需要子查询:
select ID, ModuleID, (CAmount * CPercentage) / 100 as Percentage
from Table1
order by ModuleID
答案 4 :(得分:0)
您可以将此拆分用于“,”
(选择不同
DocumentList = stuff((SELECT distinct(','+ CCD2.document_filename +'')
来自callcenter_documents CCD2
WHERE document_answerid = AnswerID
对于来自callcenter_documents CCD1的XML路径('')),1,2,'')
WHERE document_answerid = AnswerID)AS document_filename