2015-11-04 69 views
0

當他們有兩個成年人和一個孩子正在預訂時,我給用戶打折時遇到了很多困難......輸出文本是說如標題所示。雖然我意識到這個問題,但我不確定我如何解決它以使結果更加獨特。'子查詢返回多於一行'使用案例

僅供參考,價格來自不同的表格,但其他一切都在預訂中。

任何幫助表示讚賞,並在此先感謝

UPDATE BOOKING SET TotalCost= 
(SELECT SUM(

CASE WHEN NumAdults = 2 AND NumChilds = 1 THEN 
(NumAdults*(SELECT Cost FROM prices WHERE AgeType = 'Adult')) 
+ 
(NumChilds*(SELECT Cost FROM prices WHERE AgeType = 'Child'/2)) 


ELSE 
(NumAdults*(SELECT Cost FROM prices WHERE AgeType = 'Adult')) 
+ 
(NumChilds*(SELECT Cost FROM prices WHERE AgeType = 'Child')) 
END 
)) 
WHERE BookID = 1 
+0

考慮提供創建和插入語句,以及期望的結果 – Strawberry

回答

1

的這個(全次數NumAdults*(SELECT Cost FROM prices WHERE AgeType = 'Adult')

應該(NumAdults*(SELECT SUM(Cost) FROM prices WHERE AgeType = 'Adult')

在那裏,你用resultset乘以Numadults

希望這有助於