SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
![]() |
#1 |
novi član
Na probnom radu
Datum učlanjenja: 17.05.2012
Poruke: 18
Hvala: 4
0 "Hvala" u 0 poruka
![]() |
![]() Pozdrav svima,
Imam sledeci problem. Imam slican upit, nemam ga sada pri sebi, ali ide ovako Kôd:
UPDATE tabela SET status = (IF status = 'B', 'N', 'B'), rate = (IF status = 'B', '-100', ''), date = (IF status = 'B', NOW(), '0000-00-00') WHERE country = 'bla bla' Ovde ne valja sledece. Zamislimo da imam 10 unosa, od kojih 2 imaju status B. Kada se izvrsi upit u oba se promeni status u N, ali ostale kolone ne, vec se ponasa kao da ne postoji status B, pa ne upisuje NOW, -100, ali zato obe dobiju N status. Znaci samo prodje ovo status = (IF status = 'B', 'N', 'B'), kako treba dok ostale i ne vidi. Nije mi jasno gde bas gresim i da li mogu da imam ovakav upit sa vise IF iskaza. Znaci upit prodje , izvrsi update ali tacan samo za prvi iskaz. Ja sam mogao to da uradim da vratim prvo niz iz tabele, pa zavisno od statusa napravim novi niz pa uradim update. Ali mislio sam da moze to ovako na jedan upit. |
![]() |
![]() |
Alati teme | |
Način prikaza | |
|
|