Автоматически генерировать номер строки, если выбирается только одна запись - PullRequest
0 голосов
/ 03 июля 2018

ALTER PROCEDURE [dbo]. [SerailNo_LoadValue]
(
@SerialNo int,
@ Сезон nchar (5)
)

AS

НАЧАТЬ
ЕСЛИ СУЩЕСТВУЕТ (ВЫБЕРИТЕ 1 ИЗ MATERIAL_Stock WHERE SerialNo = @SerialNo и Season = @Season)

НАЧАТЬ
if (@Season = 'PER')
НАЧАЛО

ВЫБРАТЬ код материала, ULC_id, setNo, MONTH (GETDATE ()) AS Delivery_Month, YEAR (GETDATE ()) AS Delivery_Year, 1 AS NORECORD
, ISNULL (qty_total, 0) AS qty_total, ISNULL (ULC, 0) AS 'ulsmtr', isnull (MATNR, '') как MATNR - ДОБАВЛЕНО ЛАЛИТОМ, КАК ОБСУЖДЕНО ДИПЕНДРОЙ 22 АПРЕЛЯ 2016
ИЗ МАТЕРИАЛА_Stock ВЕРНУТЬСЯ ВСТУПИТЬ ULC_master ON ULC_master.ID = MATERIAL_Stock.ULC_id ГДЕ SerialNo = @SerialNo и Season = @Season

END
ELSE

НАЧАТЬ

ВЫБРАТЬ код материала, ULC_id, setNo, Delivery_Month, Delivery_Year, 1 AS NORECORD
, ISNULL (qty_total, 0) AS qty_total, ISNULL (ULC, 0) AS 'ulsmtr', isnull (MATNR, '') как MATNR - ДОБАВЛЕНО ЛАЛИТОМ, КАК ОБСУЖДЕНО ДИПЕНДРОЙ 22 АПРЕЛЯ 2016 ГОДА
ИЗ МАТЕРИАЛА_Stock ВЕРНУТЬСЯ ВСТУПИТЬ ULC_master ON ULC_master.ID = MATERIAL_Stock.ULC_id ГДЕ SerialNo = @SerialNo и Season = @Season

END

выберите отдельный Delivery_Year, Delivery_Month, Season в #T из Material_stock где сезон = @ сезон заказ на Delivery_Year, Delivery_Month

select *, ROW_NUMBER () OVER (ORDER BY Delivery_Year, Delivery_Month) AS RowNumber в #TT из #T

объявить @MONTH int объявить @YEAR int объявить @ROWID int выберите топ 1 @ MONTH = Delivery_Month, @ YEAR = Delivery_Year из dbo.Material_stock где Season = @ Season And SerialNo = @ SerialNo выберите @ ROWID = RowNumber из #TT, где Delivery_Month = @ MONTH и Delivery_Year = @ YEAR Delivery_Year выберите как Delivery_Month1, Delivery_Month, Delivery_Year, Season, RowNumber из #TT, где RowNumber> = @ ROWID

Drop Table #T Drop Table # TT

END

END

...