读书人

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

发布时间: 2013-01-11 11:57:35 作者: rapoo

求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

读书人网 >SQL Server

热点推荐