[英]RowNumber on join?
TableBoxes TableItems
BoxCode BoxDesc ItemNo BoxCode ItemDesc
X1 Freight1 123 X1 Tomatoes
X4 Freight2 124 X1 Apples
X8 Freight3 128 X4 Potatoes
我只需要BoxCode = X1的结果行,输出按ItemNo排序
BoxNumber ItemNo ItemDesc
1 1 Tomatoes
1 2 Apples
我可以通过在ItemNo上使用row_number()轻松获得'ItemNo'序列。 如何从第一个表中找到包装盒的序列号? 我目前的查询
select
row_number() over(
order by a.ItemNo
)as ItemNo
,ItemDesc
from
TableItems a
inner join TableBoxes b
on a.BoxCode=b.BoxCode
where
a.BoxCode='X1'
无法弄清楚如何为BoxCode,Damien选择序列。
这是你想要的吗?
WITH TableBoxesRanked AS (
SELECT
*,
BoxNumber = ROW_NUMBER() OVER (ORDER BY BoxCode)
FROM TableBoxes
)
SELECT
b.BoxNumber,
ItemNumber = ROW_NUMBER() OVER (ORDER BY i.ItemNo),
i.ItemDesc
FROM TableItems i
INNER JOIN TableBoxesRanked b ON i.BoxCode = b.BoxCode
WHERE a.BoxCode = 'X1'
使用如下所示的density_rank():
SELECT DENSE_RANK() OVER(order by a.BoxCode) , row_number() over(order by a.ItemNo)as ItemNo, ItemDesc
from #TableItems a
inner join #TableBoxes b on a.BoxCode=b.BoxCode where a.BoxCode in ('X1','X4')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.