2013-03-10 55 views
0

假设我有SELECT SUM()的条件在MySQL

SELECT `Type`, `Originating Country Code`,`Originating Currency Code`, SUM(`Principal Amount`) as Total 
FROM `colab` 
WHERE (`Destination Country Code`='PH' 
    AND `Destination Currency Code`='PHP' 
    AND `Type` = 'PAID') || (`Destination Country Code`='PH' 
    AND `Destination Currency Code`='USD' 
    AND `Type`= 'PAID') 
    GROUP BY `Type` 

是工作的罚款,并返回true,请参见下面的

country_code | Currency_Code | Type | Principal 

======================================================= 
| PH   | PHP   | PAID | 200 
======================================================= 

我的问题是我想单独货币的本金总额与美元值。请参阅记录我的数据库里面

country_code | Currency_Code | Type | Principal 

======================================================= 
| PH   | PHP   | PAID | 100 
| PH   | USD   | PAID | 100 
======================================================= 

回答

3

尝试此查询:

SELECT `Currency_Code`, SUM(`Principal Amount`) as Total 
FROM `table` 
GROUP BY `Currency_Code` 
+0

喜先生梦食者,任何想法我怎么能做出另一个条件? – phphopzter 2013-03-10 03:24:32

+0

@phphopzter你可以更具描述性的条件?就像你想'type'字段是'W'或者你的'country_code'是'PH'或者类似的东西? – hjpotter92 2013-03-10 03:26:36

+0

嗨,谢谢,我只想插入另一个WHERE子句?但我认为它不能在我的查询权?这就是为什么即时查找mySQL查询功能,以保持1个或更多的条件。谢谢 – phphopzter 2013-03-10 03:30:39

0

您需要使用GROUP BY

SELECT `Currency Code`, SUM(`Principal Amount`) as Total 
FROM `table` 
WHERE `Country Code`='PH' 
    AND `Type` LIKE '%W%' 
GROUP BY `Currency Code` 
1

你可以使用一个GROUP BY像这样:

SELECT `Currency_Code`, SUM(`Principal Amount`) as Total 
FROM `table` 
WHERE `Country Code`='PH' 
    AND `Type` LIKE '%W%' 
GROUP BY `Currency_Code` 

如果你想添加更多的条件,只是用ANDOR添加更多的零部件到WHERE条款如:

SELECT `Currency_Code`, SUM(`Principal Amount`) as Total 
FROM `table` 
WHERE `Country Code`='PH' 
    AND `Type` LIKE '%W%' 
    AND `Currency_Code` IN('USD', 'CAD', 'YEN') 
    AND `Principal_Amount` > 10 
GROUP BY `Currency_Code` 
0

广东话你只需要改变根据您的需要查询? 我的意思是您的预期结果我推断您需要基于Type或country_code的结果,因此从查询中删除“AND Currency Code ='PHP'”将会给您预期的结果。

0

将你的标准分解成一个子查询并加入它。只要添加尽可能多的规则就可以了。

SELECT `Country Code`, `Currency Code`, `Type`, 
     SUM(`Principal Amount`) as Total 
FROM `table` 
JOIN (
    SELECT 'PH' as a, 'PHP' as b, '%W%' as c 
    UNION SELECT 'PH', 'USD', '%W%' 
    UNION SELECT 'PY', 'PYC', '%H%' 
) AS criteria 
    ON (`table`.`Country Code` = criteria.a and 
     `table`.`Currency Code` = criteria.b and 
     `table`.`Type` like criteria.c) 
GROUP BY `Country Code`, `Currency Code`, `Type`