Beje pats kritikuoja left joinus, o poto siulo daryt left joina :) 1. cia eina ne keli irasai o gali but desimtys tukstanciu, gal net simtai tukstanciu; 2. rezultato reikia per labai trumpa laika, per trumpiau nei sekunde, kas su siuo selectu pavyksta, tik ar dar cia kazka optimizuot eina; 3. Atsakymu pakankamai konstruktyviu, isskyrus, kad panaudot "COALESCE" nesimato, matyt nelabai ka sugalvot kam pavyksta geresnio, o variantas su OVER siuo atveju netinka. 4. 4 joinai eina del to, kad, cituoju: 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. Jei turi ideju kaip tai istraukt su 1 join, gal gali pasidalint ;) buvo hipoteze daryt subuzklausa su select top1 ir atseit order, bet kai pasakiau, kad cia irasu daug tai atkrito.