[ roberto555 @ 29.09.2008. 13:53 ] @
Pozdrav,

ovako za primjer mog problema, uzmimo jednu tabelu sa kolonama:

kolona1,kolona2,kolona3,formula,id
5,6,7,kolona1*kolona2,

meni predstavlja problem kako u select upitu dobiti rezultat formule, da li postoji možda neki bolji način da ovo riješim?

Ustvari ja imam dvije tabele u kojima su formule, povezane su preko jedne šifre sa drugom tabelom gdje su podaci, i tu ima 10 kolona decimal tipa, a u formuli piše na koji način se one trebaju množiti, zbrajati ... i sad me muči kako dobiti rezultat formule? Probao sam nešto sa execute ali nisam niš još uspio napraviti, je li netko ima nešto slično?


Hvala.
[ DarkMan @ 29.09.2008. 14:48 ] @
Code:

create table #temp
(
  id int, 
  kolona1 int, 
  kolona2 int, 
  kolona3 int, 
  formula varchar(100)
)

insert into #temp values(1,1,4,8,'kolona1*kolona2')
insert into #temp values(2,1,4,8,'kolona1*kolona3+kolona1')
insert into #temp values(3,1,4,8,'kolona3/kolona2')
insert into #temp values(4,1,4,8,'kolona3-kolona2-kolona1')

declare @id int, @query varchar(1000)
declare stavke cursor for select id from #temp
open stavke
fetch next from stavke into @id

while @@FETCH_STATUS = 0 and @@ERROR = 0
  begin
    select @query = 'select kolona1, kolona2, kolona3, ''' + formula + ''' as formula, ' + formula + ' as resultat from #temp where id = ' + ltrim(id) from #temp where id = @id
    exec(@query)
    fetch next from stavke into @id
  end

close stavke
deallocate stavke
[ .:Marvin:. @ 29.09.2008. 15:17 ] @
Bravo za DarkMan-a! Prosto a radi posao.

S tim da ako imas dve tabele treba da ide neki join, ali ovo jeste osnovni princip.
[ roberto555 @ 29.09.2008. 20:41 ] @
Hvala na odgovoru, sutra ću isprobati na mojem slučaju, ali mislim da je to to... da naravno da treba join buduči da imam dvije tabele no to je manji problem. Hvala najljepša!
[ roberto555 @ 01.10.2008. 08:08 ] @
Pozdrav,

eto ukomponirao sve u svoj slučaj, malo prilagodio i odlično radi ... hvala još jednom!