Mam tabeli, która wygląda następująco:TSQL - Wypełnianie wartości powyżej i poniżej wpisu poprzez odniesienie innych kolumn
ten może być odtworzony z poniższego kodu:
CREATE TABLE dbo.EmpnoProblem
(
DATE date NULL,
WORKNO nvarchar(50) NULL,
OPSEQ int NULL,
RELEASED nchar(10) NULL,
PRODUCT nvarchar(50) NULL,
EMPNO nvarchar(50) NULL
) ;
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 10, '10', '5454ABC', NULL);
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 20, '10', '5454ABC', NULL);
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 30, '10', '5454ABC', '345');
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 40, '10', '5454ABC', '345');
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 50, '10', '5454ABC', NULL);
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 60, '10', '5454ABC', NULL);
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 70, '10', '5454ABC', '698');
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 80, '10', '5454ABC', NULL);
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 90, '10', '5454ABC', NULL);
I trzeba wypełnić kolumnę EMPNO.
Gdy 3 kolumny są takie same: WORKNO, RELEASED, PRODUCT, mam do czynienia z indywidualnym grupowaniem, a mój zbiór danych składa się z tych grupowań.
W ramach tego grupowania, jeśli EMPNO ma wartość null, najpierw musi zostać wypełniony przez następny EMPNO w dół, który nie jest zerowy (może to być kilka wpisów w dół). Kolejne obniżenie EMPNO określa numer OPSEQ. Jeśli nie ma EMPNO, który nie jest null w dalszej części grupowania (na przykład dwa puste wpisy na końcu), to musi być wypełniony ostatnim EMPNO powyżej, który nie jest pusty.
tabela powinna wyglądać następująco:
przeprosiny za brak prób kod na mojej stronie. Nie jestem pewien, od czego zacząć od tego. Wszelkie wskazówki w ogóle byłyby bardzo mile widziane.
Jaką wersję serwera sql? – mxix
SQL Server 2012 –
Masz OPSEQ 50 zakodowany jako 698, ale zgodnie z Twoimi wymaganiami zostanie ustawiony na 345. Musisz nieco dostosować swoje wymagania. To powinno być łatwe do osiągnięcia, jeśli uda ci się wypracować ten szczegół. –