2010-09-10 78 views
1

我称之为表table1,它看起来像下面的组SQL Server中的第2005

record type tran_ref_number amount    customer_name 

    TRN     123  15000     sara 
    TRN     234  25000     inba 
    TRN     345  20000     rajiv 
    TRN     456  16000     rahul 
    TRN     567  34556     sathish 
    TRN     678  15000     ilango 
    TRN     123  15000     sara 
    TRN     234  25000     inba 
    TRN     345  20000     rajiv 
    TRN     456  16000     rahul 
    TRN     567  34556     sathish 
    TRN     678  15000     ilango 

我想要的“的基础上,从该表中删除记录,如果量的总和超过70000 /每位顾客“。 结果应根据客户名称进行分组。

任何人有任何想法可以帮助我解决这个问题。

在此先感谢。

+0

[by子句查询组]的可能重复(http://stackoverflow.com/questions/3677394/group-by-clause-query) – 2010-09-10 11:48:51

回答

0
select customer_name 
from table1 t 
group by customer_name 
having sum(amount) > 70000 
+0

我downvoted此答案因为它不回答问题,需要修复或删除。而不是downvoting在页面上的其他2个答案,你应该看看,看看为什么你的答案downvoted和修复或删除。 – 2010-09-10 11:34:06

+0

@Martin我也把这个评论标记为冒犯性的。因为它是。 – 2010-09-10 12:15:22

+0

不会冒犯任何合理的人。说实话,我发现你对迈克尔的回答的评论显得更为冒犯。他打算复制谁? – 2010-09-10 12:19:45

0
DELETE FROM Table1 
    WHERE CUSTOMER_NAME IN (SELECT customer_name 
    from table1 t 
    group by customer_name 
    having sum(amount) > 70000 
) 
+0

+1中和不明原因的downvote。 – 2010-09-10 11:29:03

+0

我低估了这个答案,因为它是一个模仿者。 – 2010-09-10 12:12:01

1
;with cte as 
(
SELECT SUM(amount) OVER (PARTITION BY customer_name) a 
FROM table1 
) 
DELETE FROM cte WHERE a > 70000 
+0

@Martin去爬树。 – 2010-09-10 12:02:24

+0

@Denis - 长大。 – 2010-09-10 12:07:32

+0

我低估了你的答案,因为你低估了我的答案,因为你认为没有比完整的,扩展的答案更好的答案,但事实并非如此。 – 2010-09-10 12:13:11