Yapmaya çalıştığım şey, tablodaki verilerin geri kalanının bir sütuna göre sabit kaldığı süreleri seçmek ve buradaki ikinci sütun değerinde bir değişiklik olup olmadığını kontrol etmektir. dönem.SQL Server - Verilerde değişiklik olmadan periyodların seçilmesi
Tablo: Ben almak istiyorum ne
create table #stable_periods
(
[Date] date,
[Car_Reg] nvarchar(10),
[Internal_Damages] int,
[External_Damages] int
)
insert into #stable_periods
values ('2015-08-19', 'ABC123', 10, 10),
('2015-08-18', 'ABC123', 9, 10),
('2015-08-17', 'ABC123', 8, 9),
('2015-08-16', 'ABC123', 9, 9),
('2015-08-15', 'ABC123', 10, 10),
('2015-08-14', 'ABC123', 10, 10),
('2015-08-19', 'ABC456', 5, 3),
('2015-08-18', 'ABC456', 5, 4),
('2015-08-17', 'ABC456', 8, 4),
('2015-08-16', 'ABC456', 9, 4),
('2015-08-15', 'ABC456', 10, 10),
('2015-01-01', 'ABC123', 1, 1),
('2015-01-01', 'ABC456', NULL, NULL);
--select * from #stable_periods
-- Unfortunately I can’t post pictures yet but you get the point of how the table looks like
Car_Reg \t FromDate \t ToDate \t External_Damages Have internal damages changed in this period?
ABC123 \t 2015-08-18 \t 2015-08-19 \t 10 \t Yes
ABC123 \t 2015-08-16 \t 2015-08-17 \t 9 \t Yes
ABC123 \t 2015-08-14 \t 2015-08-15 \t 10 \t No
ABC123 \t 2015-01-01 \t 2015-01-01 \t 1 \t No
ABC456 \t 2015-08-19 \t 2015-08-19 \t 3 \t No
ABC456 \t 2015-08-16 \t 2015-08-18 \t 4 \t Yes
ABC456 \t 2015-08-15 \t 2015-08-15 \t 10 \t No
ABC456 \t 2015-01-01 \t 2015-01-01 \t NULL \t NULL
[External_Damages] sabit ve onay [Internal_Damages yaptığı dönem çerçeveleri inşa etmek ] aynı dönemde değişiyor (kaç kez önemli değil). Çok fazla zaman harcayarak çalışıyorum ama korkarım ki, soyutlama seviyem çok düşüyor ... Herhangi bir öneri görmek harika olacak.
sayesinde
Bartosz
veri kümesi eksik günlerini ele verebilir herhangi bir seçenek var mı? Eğer yakın çevrelerde [External_Damages] aynı ise, o zaman kayıp günlerde aynı olacak ve birkaç gün içinde veri eksik günlerin neden olduğu aralar yerine uzun bir süre yaratabileceğimizi varsayalım? –
@BartoszX, bunun için yeni bir soru oluşturmanızı öneriyorum. –