Всем добрый день!
1.Выгрузка для маркетплейса из выделенных в списке перемещений. Заказчик хочет группировку товаров по артикулу+цвету.
Данные беру хранимкой и пишу в таблицу, в которой первичный ключ Document Type,Document No.,Line No_.
Не могу корректно определить Line No_ в строке.
Вот так ругается при выгрузке
Violation of PRIMARY KEY constraint 'ххх$Export Documents$0'. Cannot insert duplicate key in object 'dbo.ххх$Export Documents'.
2.Сделала вот такую фн:
USE [ххх]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <ххх>
-- Create date: <2023-01-26, ,>
-- Description: <нужна в хп [dbo].[rnd_export22y_transfer_group], где строки перемещ групп по артик товара+цвет и запись в т 50124 с ключом ... Строка Но>
-- #SC-хх 2023-01-16 Выгрузка
-- =============================================
ALTER FUNCTION [dbo].[GetLineNo]
(
@LastLineNo int
)
RETURNS int
AS
BEGIN
RETURN (@LastLineNo + 10000)
END
в хп
SET @line = 10000
Дальше надо как-то @line впихнуть в конструкцию
INSERT INTO [ххх].[dbo].[ххх$Export Documents]
([Document Type]
,[Document No_]
......
SELECT @Type --(<Document Type, int,>
,@docGroup --docNo--<Document No_, varchar(30),>
,1--<State, int,>
,sl.[Shipment Date]--<DateTime, datetime,>
,sl.[Document No_]--<Vender, varchar(100),>
..........
Что-то типа , @line = (select [dbo].[GetLineNo] (@line) )
чтобы и @line увеличилось, и в новую запись пошло увеличенное значение.
Не получается использовать фн [dbo].[GetLineNo] ! (((((
3. Я извернулась вот так:
, (SELECT top 1 FLOOR(RAND(ART2.[Qty])*(ART2.[Line No_]))+ FLOOR(RAND(ART2.[Line No_])*(ART2.[Qty]))) [Line No]
ART2.[Line No_] при группировке сумм по всем лайнам)))
а ART2.[Qty] - по всем количествам в строках
Пока работает.
Может, кто-то решал подобную задачу, и может поделиться опытом?
Спасибо!