Разделить строку на основе результата операции деления - PullRequest
0 голосов
/ 10 мая 2019

У меня отгрузка данных и умножение на 1 корзину, До:

Pack ID Brand   Part    Ship Qty    Qty per Basket  divideval   mod Batch
4       Brand A Part P  145         50              2           45  OB
4       Brand A Part P  125         50              2           25  OB2

Мне нужно умножить данные, основанные на кол-во / кол-во для каждой корзины, После:

Pack ID Brand   Part    Ship Qty    Batch
4       Brand A Part P  50          OB
4       Brand A Part P  50          OB
4       Brand A Part P  45          OB
4       Brand A Part P  50          OB2
4       Brand A Part P  50          OB2
4       Brand A Part P  25          OB2

Как сделать это с помощью SQL Server?

1 Ответ

0 голосов
/ 10 мая 2019

Поскольку вы уже вычислили Qty per Basket, это немного упрощает задачу.

В решении используется таблица чисел / счетчиков или рекурсивный cte для ее генерации.

В следующем запросе используется таблица чисел

select  t.PackID, t.Brand, t.Part, 
        case when n = 1 and [mod] <> 0 then [mod] else t.QtyperBasket end as ShipQty, 
        t.Batch
from    yourtable t
        cross join numbers n
where   n.n >= 1
and     n.n <= t.divideval + case when [mod] > 0 then 1 else 0 end
...