У меня есть очень большой стол, содержащий историю цен.SQL Server 2012 очищает набор данных
CREATE TABLE [dbo].[SupplierPurchasePrice](
[SupplierPurchasePriceId] [int] IDENTITY(1,1) PRIMARY KEY,
[ExternalSupplierPurchasePriceId] [varchar](20) NULL,
[ProductId] [int] NOT NULL,
[SupplierId] [int] NOT NULL,
[Price] [money] NOT NULL,
[PreviousPrice] [money] NULL,
[SupplierPurchasePriceDate] [date] NOT NULL,
[Created] [datetime] NULL,
[Modified] [datetime] NULL,
)
За товар (идентификатор) и поставщик (Id) У меня есть сотни цен. Теперь необходимо удалить основную часть данных, но при этом сохранить некоторые исторические данные. Для каждого продукта (Id) и поставщика (Id) я хочу сохранить, скажем, 14 записей. Но не первый или последний 14. Я хочу сохранить первую и последнюю запись. А затем сохраняйте 12 записей равномерно между первым и последним. Таким образом, я держу некоторую историю в такт.
Я не могу понять, как это сделать непосредственно с хранимой процедурой, а не через мой C# ORM (что слишком медленно).
Вы можете добавить скрипт sql? –
Хотя мне нравится вопрос, я не уверен, что это особый надежный подход к архивированию данных. Я думаю, что лучшим подходом было бы кратковременное отображение цен в фиксированных точках во времени исторически, поэтому у вас есть надежные сравнения как для поставщиков, так и для продуктов. –