Tema: Re: MSSQL help
Autorius: NicMC
Data: 2013-09-23 09:58:29
Ačiū labai - pavyko suprasti. Anchoras išduoda viską, kas neturi vėliau 
einančio periodo, o rekursija jau sukabina likusius.

On 2013.09.22 18:44, blah wrote:
> toks variantas atrodo veikia gerai:
>
> WITH CteTable AS (
>      SELECT [ELEMENT], [START], [END], [VALUE]
>      FROM [Test].[dbo].[Table1] t1
>      WHERE NOT EXISTS (SELECT 1 FROM [Test].[dbo].[Table1] t2
>                          WHERE t1.[ELEMENT] = t2.[ELEMENT] AND
> t1.[VALUE] = t2.[VALUE] AND DATEADD(DAY, 1, t1.[END]) = t2.[START])
>
>      UNION ALL
>
>      SELECT t3.[ELEMENT], t3.[START], c.[END], t3.[VALUE]
>      FROM [Test].[dbo].[Table1] t3
>     INNER JOIN CteTable c
>         ON t3.[ELEMENT] = c.[ELEMENT] AND t3.[VALUE] = c.[VALUE]
>              AND DATEADD(DAY, 1, t3.[END]) = c.[START]
> ),
> CteTable2 as (
> select [ELEMENT], MIN([START]) as [START], [END], MAX([VALUE]) as [VALUE]
> from CteTable
> group by [ELEMENT], [END]
> )
> select [ELEMENT], [START], MAX([END]) as [END], MAX([VALUE]) as [VALUE]
> from CteTable2
> group by [ELEMENT], [START]

3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser