2017-08-07 36 views
0

爲什麼不是這個工作夥計?MYSQL更新與多個集合和WHERE子句和彙總功能

我有一個「invoiceID」 = 70372具有多個「項」在行的表「invoiceitems」

發票「項目」還包含一個「總」和「小計」兩者均爲相同的值在這種情況下。

其中一些「項目」包含文字「歐元」(因此LIKE%%子句)

所以這裏的就是我需要做的...... 其中「invoiceID」 = 70372 AND「項」 LIKE' %EUR%'....我想將「描述」,「小計」,「總計」列設置爲貨幣換算金額。

轉換比率爲:0.886021

我想

我試圖執行使用MYSQL如下語句貨幣轉換更新做SUM(總* 0.886021)。

我已經設置了包含字符串文本的變量,因爲它們需要形成設置到描述列中的字符串的一部分。

我確實在這個查詢where子句所在的名稱文本中有''EUR EUR%''的發票'items'。因此,LIKE'%EUR%'條款。

任何幫助將不勝感激。目前,這個確切的查詢是拋出以下錯誤;

1111 - 無效使用組功能的

SET @euroequals = ' Euro equals'; 
SET @britishpound = ' British Pound'; 
UPDATE invoiceitem 
SET description = CONCAT(total,@euroequals,SUM(total*0.886021),@britishpound), 
subtotal = SUM(total*0.886021), 
total = SUM(total*0.886021) 
WHERE invoiceID = 70372 AND item LIKE '%EUR%' 
+0

更新你的問題添加一個合適的數據樣本和預期的結果。 – scaisEdge

+0

你有一個組函數(總和)在你的設置子句,但沒有分組。你想用這個做什麼? – AgapwIesu

+0

您是否正嘗試更新'invoice',並在每張發票上附上'invoiceitem'記錄的總和?你忘了加入嗎? – AgapwIesu

回答

0

我解決這....這工作的傢伙。

SET @euroequals = ' Euro equals'; 
SET @britishpound = ' British Pound'; 
UPDATE invoiceitem 
SET description = CONCAT(total,@euroequals,(total*0.886021),@britishpound), 
subtotal = (total*0.886021), 
total = (total*0.886021) 
WHERE invoiceID = 70372 AND item LIKE '%EUR%' 

基本上,試圖使用SUM是導致問題的原因。那是我的業餘錯誤和對你的MYSQL的理解。