[英]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.