日期:2014-05-17  浏览次数:20475 次

求sql语句!,要求返回所有商品的数量和的排列

1. SELECT ROW_NUMBER() over(order by PRODUCTCODE) as ID,BorrowID,sum(quantity)as quantity,CUSTOMERCODE, CUSTOMERNAME, PRODUCTCODE, PRODUCTNAME, BARQUANTITY,PICKDATE
FROM V_INTERFACE WHERE PickDate='2013-01-04' and BorrowID in ('000667972') 
ORDER BY PRODUCTCODE  ASC

2. select PRODUCTCODE,productname, sum(quantity)as quantity from V_INTERFACE WHERE PickDate='2013-01-04' and BorrowID in ('000667972')
group by PRODUCTCODE,productname
order by quantity desc


要求:第条1语句返回的记录按照第2条语句的结果排列(商品数量从大到小排列)
     把这两条语句用一条语句来写.

 或者用别的办法,谢谢啦!!!!!!

------解决方案--------------------
试试:
 SELECT ROW_NUMBER() OVER ( ORDER BY PRODUCTCODE ) AS ID ,
        BorrowID ,
        b.quantity ,
        CUSTOMERCODE ,
        CUSTOMERNAME ,
        a.PRODUCTCODE ,
        a.PRODUCTNAME ,
        BARQUANTITY ,
        PICKDATE
 FROM   V_INTERFACE a ,
        ( SELECT    PRODUCTCODE ,
                    productname ,
                    SUM(quantity) AS quantity
          FROM      V_INTERFACE
          WHERE     PickDate = '2013-01-04'
                    AND BorrowID IN ( '000667972' )
          GROUP BY  PRODUCTCODE ,
                    productname
        ) b
 WHERE  a.PRODUCTCODE = b.PRODUCTCODE
        AND a.productname = b.productname
        AND a.PickDate = '2013-01-04'
        AND a.BorrowID IN ( '000667972' )
 ORDER BY b.quantity ,
        a.PRODUCTCODE 
  
 
------解决方案--------------------
with T
AS(
SELECT 
ROW_NUMBER() over(order by PRODUCTCODE) as ID,
BorrowID,
sum(quantity)as quantity,
CUSTOMERCODE, 
CUSTOMERNAME, 
PRODUCTCODE, 
PRODUCTNAME, 
BARQUANTITY,
PICKDATE
FROM 
V_INTERFACE 
WHERE 
P