Tema: Re: T-SQL subquery/subselect klausimas
Autorius: Jornada Del Muerto
Data: 2011-08-04 11:01:21
Vat teke taisyt vieno veikejo koda kur viewe taip padares tik ten baisiau buvo kelis kart, poto dar proceduroj dar karta... na bet ten MSSQL 2000 buvo, o pivot yra tik nuo 2005, patarciau pivot naudot jei eina... nes poto toks bardakas su tokiais sprendimais pasidaro, kad velnias galva nusisukt gali...

"2x50" <tlchj61@gmail.com> wrote in message news:j191fg$u9i$1@trimpas.omnitel.net...
> principas toks
> 
> select
>  lenta.id,
>  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
> 
> arba http://www.lmgtfy.com/?q=sql+server+pivot&l=1 :)
> 
> "Rimokas" <rimasu@ut.lt> wrote in message 
> news:j18t0m$p83$1@trimpas.omnitel.net...
>>  Sveiki,
>>  Noriu is lenteles keliu irasu padaryt viena , kur virtualioj lentelej 
>> atsirastu papildomas laukas .
>>
>> Lentele1 :
>> PrekesId ;
>> KonfigId;
>> Datos;
>> PajBusena;
>> IslBusena;
>> Kiekis;
>> Suma;
>> ...
>> Dabar i ja isiraso pvz. pajamos - "PajBusena" - "Gauta" ir kiekis 10 vnt. 
>> Islaidoms - "IslBusena" - "Parduota", -5 vnt. . Reikia apyvartinima 
>> ziniarasciui padaryt , kad butu 2 stulpeliai , vietoj vieno "Kiekis". Pvz. 
>> "PajVnt"ir "IslVnt" . Kol kas iseina tokia uzklausa :
>>
>>      SELECT
>>      lenta1.PrekesId,
>>      lenta1.KonfigId,
>>      lenta1.PajBusena,
>>      lenta1.Datos,
>>      SUM ( Kiekis ) AS kiekVnt,
>>      SUM ( Suma ) AS Suma1,
>>      lenta1.IslBusena,
>>      INTO lenta2  FROM lenta1
>>      WHERE lenta1.Datos >='2011.07.01'
>>      GROUP BY
>>      lenta1.PrekesId,
>>      lenta1.KonfigId,
>>      lenta1.PajBusena,
>>      lenta1.IslBusena,
>>      lenta1.Datos
>>
>>   Kaip parasyt subselectus ? Jie gal but rasomi i sum() vidu ? Ta prasme 
>> but gal taip :
>>
>>      SELECT
>>      lenta1.PrekesId,
>>      lenta1.KonfigId,
>>      lenta1.PajBusena,
>>      lenta1.Datos,
>>      SUM ( select sum( Kiekis ) where lenta1.PajBusena = "Gauta" ... ) AS 
>> PajVnt,
>>      SUM ( select sum( Kiekis ) where lenta1.IslBusena = "Parduota" ... ) 
>> AS IslVnt,
>>      SUM ( Suma ) AS Suma1,
>>      lenta1.IslBusena,
>>      INTO lenta2  FROM lenta1
>>      WHERE lenta1.Datos >='2011.07.01'
>>      GROUP BY
>>      lenta1.PrekesId,
>>      lenta1.KonfigId,
>>      lenta1.PajBusena,
>>      lenta1.IslBusena,
>>      lenta1.Datos
>>
>>  As nelabai zinau T-SQL , o is guglas duoda daugiau apibendrinta info . O 
>> cia toks specifinis dalykas ...
>>
>>   Is anksto dekingas uz pagalba !
>>
>>
>>
>>
>>
>> 
> 
>