Yinelenen kayıt arasındaki tarih farkı 96 saatten fazla veya 4 gün varsa yinelenen kayıt ve dönüş kaydını yoksayan yinelenen kayıt almak zorundayım ilk giriş veya en eski tarih. Böyle My masa görünüm:tarih farkı eşit veya 4 gün veya 96 saatten fazla olduğunda yinelenen satırların nasıl döndürüleceği
ID SDATE
----------- -----------------------
1 2016-04-13 14:54:18.983
1 2016-04-08 12:55:47.907
2 2016-04-13 14:54:18.983
3 2016-04-13 14:54:18.983
4 2016-04-13 14:54:18.983
5 2016-04-13 14:54:18.983
5 2016-04-11 12:55:47.907
6 2016-04-13 14:54:18.983
6 2016-04-13 14:54:18.983
Beklenen sonuç:
ID SDATE
----------- -----------------------
1 2016-04-13 14:54:18.983
1 2016-04-08 12:55:47.907
2 2016-04-13 14:54:18.983
3 2016-04-13 14:54:18.983
4 2016-04-13 14:54:18.983
5 2016-04-11 12:55:47.907
6 2016-04-13 14:54:18.983
i sorguyu aşağıdaki çalıştı ama çalışmıyor.
WITH tt AS (
SELECT 1 as ID, GETDATE() as SDATE
UNION ALL
SELECT 1 as ID, '2016-04-09 12:55:47.907' as SDATE
UNION ALL
SELECT 2 as ID, GETDATE() as SDATE
UNION ALL
SELECT 3 as ID, GETDATE() as SDATE
UNION ALL
SELECT 4 as ID, GETDATE() as SDATE
UNION ALL
SELECT 5 as ID, GETDATE() as SDATE
UNION ALL
SELECT 5 as ID, '2016-04-11 12:55:47.907' as SDATE
UNION ALL
SELECT 6 as ID, GETDATE() as SDATE
UNION ALL
SELECT 6 as ID, GETDATE() as SDATE
)
SELECT MIN(SDATE) as SDATE, ID FROM tt as tbl
GROUP BY ID, DATEADD(HH, DATEDIFF(HH,0,SDATE) + 96,0)
ne olur gereken biri 'id' üç kayıt aşağıdaki varsa değiştirebilir sütunları görmezden? '{'2016-04-01 06: 00: 00.000', '2016-04-03 18: 00: 00.000', '2016-04-06 06: 00: 00.000'}'? Her kayıt 4 günden daha kısadır, ancak ilk ve son kayıt 5 gün arayla ayrılır. – MatBailie
3 yinelenen kimlik, ilk tarih - '1/4/2016', ikinci tarih -' 3/4/2016' ve üçüncü tarih '6/4/2016' varsa, tanımınıza göre ikinci bir yinelenen olur birinci ve üçüncü, ikinci bir kopyasıdır. Hangisi silinmeli? – sagi
@MatBailie Hah, aynı soru, aynı tarihler. – sagi