[ MatezYU @ 27.11.2006. 12:38 ] @

Kako mogu cene u celoj bazi da podelim sa 100 preko sql upita?

update fond set cena=cena/100

ovo ne radi? Jel ima drugih resenja?
[ Zed Mc Jack @ 28.11.2006. 10:37 ] @
Vidim da nije baš neka tuča ko će pre da odgovori, pa onda evo ja ću... ;-)

Ne znam u čemu radiš, ali u Visual FoxPro-u to može bar na dva načina.
Prvi je mnogo jednostavniji

1. REPLACE cena WITH cena/100
eventualno dodaš FOR uslov za uslovnu zamenu samo određenih slogova

2. napraviš petlju SCAN-ENDSCAN i za svaki slog prvo uvučeš vrednost cene u promenjivu i onda uradiš onaj tvoj SQL UPDATE.
Code:

SCAN
lnPrKey=ID_imeTabele
x=cena
UPDATE imeTabele SET cena=x/100 WHERE ID_imeTabele=lnPrKey
ENDSCAN


Petlja SCAN-ENDSCAN će da protrči kroz celu tabelu-kursor, ili kroz samo deo ako joj dodaš FOR uslov

3. Evo i treći način mi upravo pade na glavu

Dodaš privremenu kolonu(polje) cena2
i onda kroz 2 UPDATE SQL-a ažuriraš prvo privremeno polje, a zatim ono koje se menja
Code:

UPDATE fond SET cena2=cena/100
update fond SET cena=cena2

i onda izbaciš privremenu kolonu

HTH
[ MatezYU @ 28.11.2006. 12:55 ] @
Na zalost nisam uspeo ni na jedan nacin da odradim.. Ne prijavi gresku ali nece da odradi. Mogao bi u principu da napisem mali programcic koji ce iscitati vrednost iz baze, prebaciti ga u FLOAT i onda podeliti sa deset pa onda UPDATE-ovati u bazu novu vrednost ali me interesuje da li ima neki laksi nacin preko SQL upita..
Sigurno ima resenja
[ Dejan Topalovic @ 28.11.2006. 14:30 ] @
Koja baza je u pitanju? Da li dobijes ikakvu gresku?
[ chachka @ 28.11.2006. 18:24 ] @
I kog tipa podataka je atribut 'cena'?
[ Zed Mc Jack @ 29.11.2006. 10:09 ] @
Uspeo sam da pronađem još jedan način, ali mi je za to trebao VFP9, mada obično radim u VFP8.

prvo selektom izvučeš stvari kakve treba da budu

Code:

SELECT ID_imeTabele AS ID_NEW, cena/100 AS cena2 FROM fond INTO CURSOR proba

a onda jednim update sql-om ažuriraš prvu tabelu
Code:

UPDATE fond SET cena=proba.cena2 FROM proba WHERE fond.id_imeTabele=proba.id_new


Ako ti ni jedan od ponuđenih metoda ne radi, a ti nisi rekao ni u čemu radiš, ni zašto ti ponuđeni metodi ne rade, onda ti ne vredi ni pomagati.
[ goranvuc @ 29.11.2006. 10:41 ] @
Citat:
Zed Mc Jack:Ako ti ni jedan od ponuđenih metoda ne radi, a ti nisi rekao ni u čemu radiš, ni zašto ti ponuđeni metodi ne rade, onda ti ne vredi ni pomagati.

Upravo tako, ako pogledas neke njegove ranije postove videces da decko ima problem u komunikaciji (ja sam odustao od pokusaja da mu mu pomazem).
[ MatezYU @ 29.11.2006. 11:49 ] @
U pitanju je Absoulte database, a polje je currency
[ chachka @ 30.11.2006. 12:07 ] @
Absolute Database web site kaze da je to BDE zamena cija je jedna od osobina:
Citat:

SQL'92 (DDL & DML) support


Upit:
Code:

UPDATE fond
   SET cena = cena / 100 

nije standardni SQL-92 upit!

Problem je u Absolute sistemu.