Jornada Del Muerto, Yra dvi lentos - judejimo ( inventtrans ) ir likuciu ( utinvremainmonth ) . Juose irasai gali but pasiskirste visais imanomais variantais ( daugiau , maziau ir t.t. ) . Galvoju , kad select'as blogai sustatytas . Visus imanomus irasus kaip jungiancius turi inventDim . Vadinasi reiktu pradet nuo jo , jungt prie jo judejimo ir likuciu failus , atsifiltruot uz laikotarpi , agreguot ... Bandysiu taip padaryt ... >> Bandant jusu nurodyta >> "isnull(lenta.id,likuc.id), isnull(lenta.konfig_id,likuc.konfig_id)" , > > > = ISNULL = > > ISNULL biski ne tam skirtas, funkcija ISNULL( X, Y ) jeigu X buna NULL > grazina Y reiksme, o jei X ne NULL grazina X reiksme, kur Y nereikia kisti > kito kazkokio lauko jei tai buvo outer/left join'as tai tik reiskia kad > ner jokio yraso jungiamoje lentoje ir IsNull(laukas, reiksme_null_atveju) > naudojasi tik kad neluztu ivairios agregacijos ar kad pvz vietoj null > grazint ''. > > = DEL JOIN'u = > > Na 1 as imciau kaip bazine lenta ta kuri turi visus irasus, o tada kita > lenta jungi LEFT join (tiesiog man taip lengviau galvojasi), bet jeigu > darai atbulai naudoji RIGHT join. > > 1. FROM L1 LEFT JOIN L2 <- siuo atveju is L1 ims visus irasus > nepriklausomai ar L2 bus jungiamasis irasas. Kitaip sakant visi L2 lentos > laukai neesant jungiamajam irasui bus NULL! > > 2. FROM L1 RIGHT JOIN L2 <- siuo atveju imi visus irasus is L2 > nepriklausomai ar L1 turi jungiamaji irasa. Kitaip sakant visi L1 lentos > laukai neesant jungiamajam irasui bus NULL! > > Vat kada laukai buna NULL del to kad nera jokio iraso - pries bet koki > darba su jais naudojasi ISNULL(x,y) funkcija, pvz atlieki skaiciavima > kazkoki ir jei koks nors SUM, COUNT ir t.t. . gaus NULL tai mes errora > taspats su betkokiu kitu to lauko salyginiu naudojimu. > > > = TAVO ATVEJU = > > Tavo atveju kaip matau: > >> from lenta >> group by lenta.id, lenta.konfig_id, lenta.datos > .... >> tuomet nematau irasu , kuriu judejimo nebuvo , t.y. "lenta" lenteleje >> tokiu irasu nera . Kaip sujungti tokias lentas ? > > Kad bazine lenta ta kurios ne visi irasai yra, o tai reiskia: > > 1. 2 lenta jungi su RIGHT join; > 2. Turi omenyje kad bet bet kuris lenteles "lenta" laukas bet kada - gali > buti NULL! tai reiskia kad greiciausiai - juos visus teks apdirbti su > IsNull funkcija. > > Toliau einu paziuresiu ta tavo uzklausa nes jau cia visi susivelem :)