求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
T
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