select  *    from  

SELECT  sum(   dbo.inf29a.inf29a13_sold_qty )as qty,        
      dbo.inf29.inf2903_customer_code,inf29a05_pcode
FROM dbo.inf29a INNER JOIN
      dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND 
      dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND 
      dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND 
      dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq
WHERE inf2904_pro_date >='2009-01-01' and   inf2904_pro_date <='2009-03-01'
group by  inf2903_customer_code,inf29a05_pcode  
 )  a    where a.inf2903_customer_code<>'' order by inf2903_customer_code,qty desc
-----结果如下--------------
qty                                      inf2903_customer_code inf29a05_pcode       
---------------------------------------- --------------------- -------------------- 
3.000000                                 01                    40101934
3.000000                                 01                    40100067
2.000000                                 01                    40101811
2.000000                                 01                    40100012
2.000000                                 01                    40102429
2.000000                                 01                    40101477
2.000000                                 01                    40101453
1.000000                                 01                    40100340
1.000000                                 01                    40101996
1.000000                                 01                    40100074
1.000000                                 01                    40102245
1.000000                                 01                    40102054
1.000000                                 01                    40502908
1.000000                                 01                    40101484
1.000000                                 01                    40101125
1.000000                                 02                    40101996
1.000000                                 02                    40100814
1.000000                                 03                    40102047
1.000000                                 03                    40102443
1.000000                                 03                    40101996
12.000000                                031                   40100579
8.000000                                 031                   40501079
2.000000                                 031                   40100111
1.000000                                 031                   40100081
1.000000                                 031                   40100395
1.000000                                 031                   40101996
1.000000                                 031                   40100814
1.000000                                 031                   40103259
1.000000                                 031                   40100807
1.000000                                 031                   11600244
1.000000                                 031                   40102429
-----现在是要取得前10名qty最大的inf2903_customer_code和 inf29a05_pcode     ------不知道该如何写语句,请求赐教了  

解决方案 »

  1.   

    select  TOP 10 *    from  

    SELECT  sum(  dbo.inf29a.inf29a13_sold_qty )as qty,        
          dbo.inf29.inf2903_customer_code,inf29a05_pcode 
    FROM dbo.inf29a INNER JOIN 
          dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND 
          dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND 
          dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND 
          dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq 
    WHERE inf2904_pro_date >='2009-01-01' and  inf2904_pro_date <='2009-03-01' 
    group by  inf2903_customer_code,inf29a05_pcode  
    )  a    where a.inf2903_customer_code <>'' order by inf2903_customer_code,qty desc \\???
      

  2.   

    select Top 10 inf2903_customer_code, inf29a05_pcode
    from

    SELECT  sum(  dbo.inf29a.inf29a13_sold_qty )as qty,        
          dbo.inf29.inf2903_customer_code,inf29a05_pcode 
    FROM dbo.inf29a INNER JOIN 
          dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND 
          dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND 
          dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND 
          dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq 
    WHERE inf2904_pro_date >='2009-01-01' and  inf2904_pro_date <='2009-03-01' 
    group by  inf2903_customer_code,inf29a05_pcode  
    )  a    where a.inf2903_customer_code <>'' order by inf2903_customer_code,qty desc 看下行不啊?
      

  3.   


    select Top 10 inf2903_customer_code, inf29a05_pcode 
    from 

    SELECT  sum(  dbo.inf29a.inf29a13_sold_qty )as qty,        
          dbo.inf29.inf2903_customer_code,inf29a05_pcode 
    FROM dbo.inf29a INNER JOIN 
          dbo.inf29 ON dbo.inf29a.inf29a01_bcode = dbo.inf29.inf2901_bcode AND 
          dbo.inf29a.inf29a02_docno_type = dbo.inf29.inf2902_docno_type AND 
          dbo.inf29a.inf29a02_docno_date = dbo.inf29.inf2902_docno_date AND 
          dbo.inf29a.inf29a02_docno_seq = dbo.inf29.inf2902_docno_seq 
    WHERE inf2904_pro_date >='2009-01-01' and  inf2904_pro_date <='2009-03-01' 
    group by  inf2903_customer_code,inf29a05_pcode  
    )  a    where a.inf2903_customer_code <>'' 
    order by inf2903_customer_code,qty desc 
      

  4.   

    不是大家那样的意思,大家的意思是直接取 前10笔记录,我的意思是,可能有不同客户,要取每个客户的前10笔.
    比如
    客户    商品条码   数量 
    A001     001      100
    A001     002      80
    A001     003       40
    A001     004      20
    A001     005      20
    A001     006      10
    A001     007      10
    A001     008      8
    A001     009      6
    A001     010     5
    A002     001      100
    A002     002      80
    A002     003       40
    A002     004      20
    A002     005      20
    A002     006      10
    A002     007      10
    A002     008      8
    A002     009      6
    A002     010      5