首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2013-01-11 
求sql语句!,要求返回所有商品的数量和的排列1. SELECT ROW_NUMBER() over(order by PRODUCTCODE) as ID,Bo

求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 
PickDate='2013-01-04' 


and BorrowID in ('000667972') 
--ORDER BY PRODUCTCODE  ASC
)
select 
PRODUCTCODE,
productname,
sum(quantity)as quantity 
from 

where
PickDate='2013-01-04' 
and BorrowID in ('000667972')
group by 
PRODUCTCODE,
productname
order by 
quantity desc


[解决办法]
少了个东西
 SELECT ROW_NUMBER() OVER ( ORDER BY a.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  
   

热点排行