Tema: Re: Dar karta T-SQL select'as
Autorius: Jornada Del Muerto
Data: 2011-08-09 15:00:22
Sujungimas, kada kitos lentos irasas nebutinai egzistuoja, yra daromas su LEFT/RIGHT join'ais.

Pvz.:

Select
    L.id, 
    L.konfid_id, 
    L.datos
    sum(case when L.busena = 1 then L.kiekis else null end) busena_1_kiekis,
    sum(case when L.busena = 2 then L.kiekis else null end) busena_2_kiekis,

    -- agreguojame kazka is tos lentos [cia rasykis ko tau reik]
    sum(IsNull(LK.skaiciuojamas_laukas, 0)) LK_laukas,
    LK.tiesiog_isvedamas_laukas LK_simple_field

from 
    lenta L
left join likuc LK On 
    LK.id = on L.id and LK.konfig_id = L.konfig_id
group by 
    L.id, 
    L.konfig_id, 
    L.datos

-- agr. LK
    LK.tiesiog_isvedamas_laukas

Tada jai ner kazkokio iraso likuc lentoje visi is tos lentos traukiami laukai bus NULL tai jei toliau darysii agregacija (tipo sum, count, avg ir t.t.. ) su jos laukais tai pradzioj statai funkcija IsNull(likuc.laukas, 0).


P.S. Tiesa nepakenciu uzklausu su keliom lentom ir be aliasu tai sualiasinau ;) L - lenta, LK - likuc, tiesiog skaitomumas uzklausos mazeja kada dar visas lentos name prie kiekvieno lauko eina.





---

Freelancer Developer | MSSQL 2000, MSSQL 2005, MSSQL 2008 Certified via brainbench & odesk.com
http://www.lythum.lt



"Rimokas" <rimasu@ut.lt> wrote in message news:j1qo69$vp0$1@trimpas.omnitel.net...
>  Sveiki ,
> 
>   Neseniai man gerai issaiskinot , kaip  pasidaryt suminius i eilutes is 
> judejimo lentos . Viskas puikiai pavyko . Dabar bandau padaryt dar viena 
> dalyka , bet neistengiu ... :( .
> 
>   Yra ta pagrindine lenta , kaip isisaiskinot anksciau :
> 
>> principas toks
>>
>> select
>>  lenta.id, lenta.konfid_id, lenta.datos
>>  sum(case when lenta.busena = 1 then lenta.kiekis else null end)
>> busena_1_kiekis,
>>  sum(case when lenta.busena = 2 then lenta.kiekis else null end)
>> busena_2_kiekis
>> from lenta
>> group by lenta.id, lenta.konfig_id, lenta.datos
> 
>   Dabar reiktu prijungti dar viena lentele - likuciu menesio pradziai . 
> Beda ta , kad jei jungiu su kokiu "full outer join likuciai on ( likuc.id = 
> lenta.id and likuc.konfig_id = lenta.konfig_id)"  tuomet nematau irasu , 
> kuriu judejimo nebuvo  , t.y. "lenta" lenteleje tokiu irasu nera .  Kaip 
> sujungti tokias lentas ?
> 
> Is anksto dekingas uz pagalba ! :-)
> 
> 
>
3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser