2013-03-22 37 views

回答

1

MySQL需要派生表或子查询上的别名。所以,你会希望使用以下命令:

Select SUM(t1.Amount) 
From 
( 
    Select Distinct PersonName, Amount 
    From tblusers 
    where city ="xxx" 
) t1 

您应该能够使用以下虽然根据您的需要:

select personName, sum(Amount) 
from tblusers 
where city = "xxx" 
group by personName 

或者,如果你只是想返回的总和,你可以使用:

select sum(Amount) 
from tblusers 
where city = "xxx" 
group by personName 
+0

它的工作。感谢兄弟。 – 2013-03-22 14:08:34

+0

@KESAVANPURUSOTHAMAN欢迎您! – Taryn 2013-03-22 14:09:04

2

只是别名的子查询:

Select SUM(Amount) 
From (
    Select Distinct PersonName, Amount 
    From tblusers 
    where city ="xxx") t 

如果你正在寻找每个人,增加一个GROUP BY:

Select PersonName, SUM(Amount) 
From (
    Select Distinct PersonName, Amount 
    From tblusers 
    where city ="xxx") t 
Group By PersonName 

如果你真的想每个人的总和(而不是不同人物/金额的总和),那么你完全不需要子查询:

Select PersonName, SUM(Amount) 
From tblusers 
Where city ="xxx" 
Group By PersonName 

虽然取决于您的实际需求。

+0

其工作伙计。谢谢。我只需要第一个案件。 – 2013-03-22 14:10:14

+0

@KESAVANPURUSOTHAMAN - np,很高兴我们可以帮助! – sgeddes 2013-03-22 14:13:20

0

我做了下面的查询。但想知道是否有任何其他可能的方式来做到这一点。

CREATE VIEW T1 as (Select Distinct PersonName,Amount From tblusers where city ="xxx"); 

    Select SUM(Amount) From T1 
相关问题