[ surferxyz @ 24.11.2006. 07:29 ] @
Imam tabelu sa sledećim sadržajem
Code:

alex            a
alex            b
alex            c
nick            a
nick            b

Trebao bih select koji bi mi vratio ovakav rezultat
Code:

alex            a,b,c
nick            a,b

Znam da to mogu riješiti pomoću kursora i pomoćnih tabela, al me interesuje jel postoji neko elegantnije rješenje.

Hvala.
[ goranvuc @ 24.11.2006. 08:11 ] @
Citat:
surferxyz:
Znam da to mogu riješiti pomoću kursora i pomoćnih tabela, al me interesuje jel postoji neko elegantnije rješenje.

Kratko i jasno: NE

[ surferxyz @ 24.11.2006. 08:18 ] @
Mnogo HVALA
[ goranvuc @ 24.11.2006. 08:44 ] @
NEMA na cemu
[ surferxyz @ 24.11.2006. 12:10 ] @
Ima, ima.
Najgora stvar u programiranju je ta kada nešto pokušavaš, a onda skontaš da je to nemoguće.
[ goranvuc @ 24.11.2006. 12:23 ] @
Citat:
surferxyz:Najgora stvar u programiranju je ta kada nešto pokušavaš, a onda skontaš da je to nemoguće.

Hm, nije to ni tako lose, uvek se usput svasta nauci.
[ adopilot @ 02.12.2006. 15:23 ] @
A da pravis izvještaj sa cross table sistemom

ili MATRIX kako ga sada zove MS SQL report sistem
[ branimir.ts @ 08.01.2007. 09:34 ] @

Tebi u stvari treba pivot. Ovo mozes resiti preko T-SQL a i CASE klauzula ako imas MS 2000 , ali u MS SQL 2005 postoji i PIVOT ( to je poboljsanje vezano za TSQL). Ne znam napamet kako tacno glasi, pogledaj u helpu. Sramota je sto se to moze odraditi u Accessu 2000 preko Cross tab wizarda a ne postoji u MSSQL u 2000.

Pozdrav
[ dekibre @ 09.01.2007. 12:50 ] @
Evo primera sa northwindom u SQL 2000. Malo sredi kod ali to je to u principu, bez kursora. Možda postoji još bolji način ali ovo mi je prvo palo na pamet. Inače ovo je jedan od načina sa while petljom da izbegavaš kursore.

Code:

use northwind
declare @customerid char(5)
declare @orderid int
declare @orders varchar(255)

create table #Podaci
(
Customer char(5)
, orders varchar(255)
)

select customerid, orderid into #porudzbenice from orders
order by 1,2

while (select count(*) from #porudzbenice) > 0
begin

select @customerid = min(customerid) from #porudzbenice
select @orderid = min(orderid) from #porudzbenice where customerid = @customerid

if exists(select customer from #podaci where customer = @customerid)
begin
select @orders = orders from #podaci where customer = @customerid
update #podaci 
set orders = @orders + ', ' + cast(@orderid as varchar(255))
where customer = @customerid
end
else
begin

insert into #podaci (customer, orders)
select @customerid, cast(@orderid as varchar(255))

end

delete from #porudzbenice where customerid = @customerid and orderid = @orderid

end


select * from #podaci


select customerid, orderid from orders
order by 1,2

drop table #podaci
drop table #porudzbenice