TableBoxes TableItems
BoxCode BoxDesc ItemNo BoxCode ItemDesc
X1 Freight1 123 X1 Tomatoes
X4 Freight2 124 X1 Apples
X8 Freight3 128 X4 Potatoes
Я хочу строку результата для BoxCode = только X1, с выходом по заказу ITEMNORowNumber on join?
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, Дэмиен.
WOULD'NT первый запуск запроса на весь стол в первую очередь? Например, сначала присвойте номер строки всем строкам в первой таблице, тогда он будет запускать выбор в результирующем наборе с помощью предложения where? Скажем, у меня есть тысячи строк в первой таблице, возможно ли это решение? –
Логически, да, я бы ожидал, что так будет, потому что вы не можете узнать количество «BoxCode» в таблице, не пройдя всю таблицу. Тем не менее, для реализации вместо поиска таблицы может использоваться поиск индекса (если существует соответствующий индекс в 'BoxCode'). (То есть, если я правильно понимаю ваши требования.) –
Спасибо за объяснение Andriy M, это было действительно информативно. –