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?
>>
>