Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 4.318 pregleda

Najnovija ↓

interesantan upit 24.11.2006. u 08:29 · pre 242 meseca #1
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.
Re: interesantan upit 24.11.2006. u 09:11 · pre 242 meseca #2
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

Re: interesantan upit 24.11.2006. u 09:44 · pre 242 meseca #4
NEMA na cemu ;)
Re: interesantan upit 24.11.2006. u 13:10 · pre 242 meseca #5
Ima, ima.
Najgora stvar u programiranju je ta kada nešto pokušavaš, a onda skontaš da je to nemoguće.
Re: interesantan upit 24.11.2006. u 13:23 · pre 242 meseca #6
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.
Re: interesantan upit 02.12.2006. u 16:23 · pre 242 meseca #7
A da pravis izvještaj sa cross table sistemom

ili MATRIX kako ga sada zove MS SQL report sistem
Potpis
S poštovanjem
Re: interesantan upit 08.01.2007. u 10:34 · pre 241 mesec #8

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
Re: interesantan upit 09.01.2007. u 13:50 · pre 241 mesec #9
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
Potpis
You can fool some people sometimes,
But you can't fool all the people all the time. (Bob Marley)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme