Tema: Re: DataSet Multiple SQL result (ar imanoma?)
Autorius: Jornada Del Muerto
Data: 2010-02-09 14:34:44
    Nusprendziau parasyt kadangi dienele tokia laisvesne, pabaigiau 3 men. projekto etapa :) na ir ant galo visa sia nesamone - sumine ataskaita issprendziau labai graziai panaudojant MSSQL 2005 features, teko tiesa nemazai pagooglint, tiesiog gal kam prireiks sios info sumines ataskaitas generuojant.

    Tiesa kai kam tai nebus nauja ir manau tai zino :) bet manau yra ir tokiu kurie to dar nebande.

    Nuo MSSQL 2005 yra toks geras dalykas kaip PIVOT uzklausos, tai budas duomenis skirstomus pagal kazka lenteleje istraukti taip kad tas ju skirstymas taptu stulpeliais su 1 uzklausa, kalbu apie situacijas kaip pvz. turiu prekes ir prekiu tipu zodyna, noriu kad stulpeliai butu prekiu tipai, prie ju kiekiai, o sone butu pvz menesiai, kiek to tipo prekes per ta menesi parduota, kiek problematiskiau padaryt 1 uzklausa kada yra dinaminis stulpeliu skaicius, pvz tai prekiu tipu zodynas, tada teks generuoti uzklausa formuojant stulpeliu pavadinimus, bet su 1 uzklausa nuo MSSQL 2005+ realiai eina issisukt ir viska graziai istraukt.

    Na zodziu cia kelios nuorodos, kaip tokia technologija veikia, pats dar laiko neturejau savo straipsneli koki parasyt:

http://www.sqlprof.com/blogs/sqldev/archive/2008/04/12/pivots-with-dynamic-columns-in-sql-server-2005-2008.aspx

http://www.kodyaz.com/articles/t-sql-pivot-tables-in-sql-server-tutorial-with-examples.aspx

    Pas mane buvo DB su MSSQL 2000 compatibility tai teko perjungt i MSSQL 2005, rezultate pora proceduru nustojo veikti, bet buvo lengvai pataisytos, injungus 2005 compatibility neveiks pvz vietos:

Select 0, '   ' As [name]

Union

Select l.Id, l.[name] From Lentele l
Inner join something

Order By l.[name]

Bent jau toki rasini pas save aptikau kad pradejo neveikt, tai uzteko parasyt: Order By [name] realiai taip cia klaidingai buvau parases :)

Sekmes,
JDM.





"Jornada Del Muerto" <ask@me.email> wrote in message news:hke7rv$9a1$1@trimpas.omnitel.net...
> Pas mane cia ataskaitu keleta tokiu lievu reik padaryt, kur yra kategoriju ten toks zodynas su tam tikrais diapazonais, ju kiek nori iveda, o poto tai turi tapt stulpeliais ataskaitoje, tai kad neuzmusinet servo per daug vienu metu as i kelias uzklausas kiek tu kategoriju yra dalinu, nu zodziu db duomenis reik traukt vienam reportui su kokia 10 uzklausu,  nors proceduroje galeciau grazint is kart kelis rezultatus, kazkas tokio, durna situacija, ten is viso dalis duomenu is vienos vietos, kiti is kitos o eina ten pat ir t.t.. :) zodziu idomu tik buvo, nes ta ataskaita jau padares, tiesiog ateiciai kartais prireikt tokios fn gali.
> 
> Kad ir pvz. turiu moduli kuris dirba su kokiu 3 lentu info, tai vienu kreipimuosi viska pasiimi...
> 
> "IF" <nojauslaivas@gmail.com> wrote in message news:hkb3m2$emv$1@trimpas.omnitel.net...
>> Siaip nesupratau  kam tau toks reikalas reikalingas ?
>> "Jornada Del Muerto" <ask@me.email> wrote in message 
>> news:hk9a31$rns$1@trimpas.omnitel.net...
>>> Sveiki,
>>>
>>>    Tokia briedova ideja kilo, pvz turiu MSSQL ir as galiu proceduroje 
>>> daryti:
>>>
>>>    CREATE PROCEDURE MyProc AS
>>>
>>>    Select * From lenta1 where type=1
>>>    Select * From lenta1 where type=10
>>>    Select * From lenta2
>>>    Select * From lenta3
>>>
>>>    Tada jei kokiam nors manageryje paleisit tokia proc tai kaip visi zino 
>>> grazins kelis rezultatus, o ar eitu taip kad ir i DataSet'a paimt per 
>>> ADO.NET
>>>
>>>
>>>    Tipo daugmaz standartinis kreipimasis i SQL ir DataSet.Load, yra siaip 
>>> toks metodas bet jis tada klausai lentu vardu, bet as gal 10 selectu 
>>> skirtingu is tos pacios darau...
>>>
>>>    Dar yra DataAdapter.Fill bet as negaliu gauti is IDbConnection jo 
>>> IDataAdapter, nes dirbu interface'u lygyje...
>>>
>>>    Gal kas bande? pavyko nepavyko? ar siaip turi nuomuone ?
>>> 
>> 
>>