2016-09-07 122 views
0

我有一個Mysql命令可以對數據進行求和,並且可以說它是一個Varchar。在MYSQL中使用多個條件選擇SUM

這裏是我的命令

SELECT SUM(replace(TotalAmount, ',', '')) 
FROM physicalinv_final 
WHERE ItemCode LIKE 'DRY%' AND 
     PINo = 'PI00000001' 

,它的輸出是總結TotalAmount其中ItemCode包含單詞DRYPINo = PI00000001

我的問題是這樣的我也有其他的標準像這樣

BEV 
DES 
MEA 
OTH 
DRY 
RIC 
SEA 

我試試這段代碼

SELECT SUM(replace(TotalAmount, ',', '')) FROM physicalinv_final where ItemCode like 'DRY%' ItemCode like 'BEV%' and So On ..... and PINo = 'PI00000001'

但輸出null雖然我有一個包含DRY數據。

輸出我想

link

是有辦法解決這一問題?

TYSM求助

+1

你可以發表一些例子'TotalAmount'? – tomb

+0

肯定先生請等待我編輯過的帖子 –

+0

@tomb我是_guessing_(只是猜測)'TotalAmount'是一個有逗號的數字。他正在嘗試刪除逗號,然後讓MySQL找出適用於'SUM'的演員陣容。 –

回答

0

使用orgroup by代替:

SELECT ItemCode, SUM(replace(TotalAmount, ',', '')) 
FROM physicalinv_final 
WHERE (ItemCode like 'DRY%' OR 
     ItemCode like 'BEV%' OR ...) 
    AND PINo = 'PI00000001' 
GROUP BY ItemCode 

或者,如果你只是想包含任何這些項目代碼整體sum,刪除group by條款:

SELECT SUM(replace(TotalAmount, ',', '')) 
FROM physicalinv_final 
WHERE (ItemCode like 'DRY%' OR 
     ItemCode like 'BEV%' OR ...) 
    AND PINo = 'PI00000001' 
+1

youre right sir請參閱編輯後的文章 –

+0

@ShadowFiend - 這些查詢會產生您的預期結果。第一組和第二組返回總和。使用它們或將它們結合在一起。你的預期結果是excel格式,有點不清楚...... – sgeddes

+0

@sgeddes他在'WHERE'子句中的操作順序可能導致沒有結果返回。 –