2010-11-18 31 views
0

我的SQL查詢子查詢返回多個值如何處理呢

select ID, ModuleID, 
     (SELECT ((CAmount * CPercentage)/100) FROM Table1) as Percentage 
    from Table1 
order by ModuleID ; 

它完美,如果只有一個值,但如果有一個以上的價值我得到一個錯誤。如何處理它,我希望表格中的所有金額都轉換爲相應的百分比,請大家幫忙。

+0

的數據庫您使用的AS? – 2010-11-18 06:08:32

+0

你究竟在做什麼*試圖做*?你的問題告訴我們你是如何努力去做的,但不是你想要達到的目標...... – 2010-11-18 14:21:29

回答

2

可以使用

SELECT TOP 1 ((CAmount * CPercentage)/100) FROM Table1 

但是,這取決於你的內涵......

0

或者......

select ID, ModuleID, 
     (SELECT ((SUM(CAmount) * SUM(CPercentage))/100) FROM Table1) as Percentage 
    from Table1 
order by ModuleID ; 

這將成功地處理多個值。

0

它讓我覺得有點奇怪,你的子查詢使用與主查詢相同的表。看起來您正在嘗試獲取每個模塊的百分比,因此獲取整個表的百分比可能是錯誤的結果。

除非我誤解你的意圖,我希望這是正確的查詢:

SELECT ID, ModuleID, SUM((CAmount * CPercentage)/100) AS Percentage 
FROM Table1 
ORDER BY ModuleID 
0

如果要計算每條記錄的值,你並不需要一個子查詢都:

select ID, ModuleID, (CAmount * CPercentage)/100 as Percentage 
from Table1 
order by ModuleID 
0

可以使用這種分裂與 「」

(SELECT DISTINCT DocumentList =東西((SELECT DISTINCT( ' '+ CCD2.document_filename +'') 從callcenter_documents CCD2
WHERE document_answerid = AnswerID 從callcenter_documents CCD1
WHERE document_answerid = AnswerID XML路徑( '')),1,2, ''))document_filename