Ne cia gale menesio formuojama saskaita faktura, beje klientai gali turet ir tukstancius issiustu siuntu/laisku per 1 menesi ar net tukstancius per diena (pvz. visoki spameriai, kaip bankai ar kokios GSM bendroves), tai duomenu buna padoriai :) nes paprastai po menesio spausdinama simtam ar net tukstanciam klientu fakturos, aisku vienu metu po 1, bet tai pvz gali daryti 10 vadybininku :) na pakolkas kaip ir sukasi, bet uzsakovas turi fantazija sioje vietoje vis kazka patobulinti, praplesti tuo paciu ir plecia savo veikla, kaip sakant sistema tobuleja beveik kiekviena menesi kazkuo :) Del to vat ir mastau apie optimizacijas :) "zZz" <zZz@zirzilia.lt> wrote in message news:jm27jp$hlq$1@trimpas.omnitel.net... > Č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? >> >