Tema: Re: MSSQL 2008 ir prioritetinis duomenu istraukimas
Autorius: zZz
Data: 2012-04-11 00:10:18
Čia kas? Funkcija?

"Jornada Del Muerto" <jornada@lythum.lt> wrote in message 
news:jm1msp$3lq$1@trimpas.omnitel.net...
> Sveiki,
>
>    Turiu tokia situacija su MSSQL 2008, kada reikia istraukti tam tikra 
> informacija prioriteto tvarka isrenkant viena ar kita irasa is lentos.
>
>    Trumpai aktuali traukimui struktura:
>
> Siuntos
> ----------
> Id
> KlientoId
> MiestoId
> GatvesId
> Svoris
>
> SiuntuKainos
> ----------
> Id
> KlientoId
> MiestoId
> SvorisNuo
> SvorisIki
>
> Dilema ta, kad kainu yra 4 tipai (tiksliau nuo siol bus).  Egzistuoja 
> (jeigu id=0 reiskia skirta visiems):
>
> 1. Bendros/globalios kainos siuntoms (KlientoId = 0, miestoId = 0);
> 2. Bendros/globalios kainos konkreciam miestui (KlientoId = 0, miestoId = 
> X) - (sis kainos variantas atsiras tik dabar);
> 3. Kliento bendros kainos (KlientoId = X, miestoId = 0);
> 4. Kliento kainos konkreciam miestui (KlientoId = X, miestoId = X).
>
> Prioriteto tvarka bandoma priskirti sias kainas: 4, 3, 2, 1.
>
>    Kaip sakant jei klientas turi savo kainas konkreciam miestui tai jas, 
> jei tam miestui ner, bet yra aplamai kliento kaina, tada priskiriama ji, 
> jeigu nera kliento kainu bet globalios kainos turi kainas tam miestui tai 
> si kaina, jeigu nera siam miestui globalios kainos tada bendra kaina.
>
>
> Siuo momentu as darau taip:
>
> SELECT
>    kainosId,
>    CASE
>        WHEN K4.Id Is Not Null  THEN K4.Id
>        WHEN K3.Id Is Not Null THEN K3.Id
>        WHEN K2.Id Is Not Null THEN K2.Id
>        ELSE K1.Id END AS "priceId",
>   ......... kiti laukai....
> FROM
>    Siuntos S
> LEFT JOIN
>    SiuntuKainos K1 On K1.KlientasId = 0 And K1.MiestasId = 0 And S.Svoris 
> BETWEEN K1.SvorisNuo And K1.SvorisId And ...kitos salygos...
> LEFT JOIN
>    SiuntuKainos K2 On K2.KlientasId = 0 And K2.MiestasId = S.MiestasId And 
> S.Svoris BETWEEN K2.SvorisNuo And K2.SvorisId And ...kitos salygos...
> LEFT JOIN
>    SiuntuKainos K3 On K3.KlientasId = S.KlientasId And K3.MiestasId = 0 
> And S.Svoris BETWEEN K3.SvorisNuo And K3.SvorisId And ...kitos salygos...
> LEFT JOIN
>    SiuntuKainos K4 On K4.KlientasId = S.KlientasId And K4.MiestasId = 
> S.MiestasId And S.Svoris BETWEEN K4.SvorisNuo And K4.SvorisId And ...kitos 
> salygos...
>
>
> Tai vat, kokie pasiulymai optimizuoti si shmota? :)
>
> PS.
>    Viskas kaip ir veikia, tik dabar reikes dadeti kaina Nr 2 (Globalios 
> miestu kainos), tai susimasciau gal cia ka eitu pagerinti?
> 

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