2016-09-07 126 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'子句中的操作顺序可能导致没有结果返回。 –