Tema: Re: MSSQL 2008 ir prioritetinis duomenu istraukimas
Autorius: Jornada Del Muerto
Data: 2012-04-11 12:46:56
    Reiks pasiskaitineti apie COALESCE, kazkaip neteke naudot ir nezinau kas tai, daugiau dirbti teke su MSSQL 2000, o is MSSQL 2005 tik pivot queries naudoju :) tiesa del PIVOT buvo mintis gal pivot pabandyti ir cia, bet cia aktualu kuo maziau sugaisti traukiant sia informacija, nes tokiu traukimu eina 2 per viena saskaitos fakturos formavima, eina dar kiek kitoki duomenys.

    Tiesa seniau buvau bandes kitokia uzklausa (ji zemiau), bet pirmame poste parasyta veikia greiciau, buvo bandyta ne CASE'inti galutinius duomenis, bet casinti JOINO ID, tipo panasi uzklausa i ta, bet:

SELECT
    kainosId,
    KX.Id,
   ......... 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...
INNER JOIN
    SiuntuKainos KX on KX.Id = 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



"bala nemate" <bala.nemate@gmail.com> wrote in message news:grbpzmertzj6$.1kjgfx64oy991.dlg@40tude.net...
>>     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",
> 
> ne geriau tokį keisą keisti į COALESCE?
> 
> -- 
> bn/mj
> skype : bala.nemate
> "The blues ain't about making yourself feel better.
> it's about making other people feel worse."
> -- Bleeding Gums Murphy