Novo

Forum kao aplikacija na telefonu

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

  • 9 odgovora
  • 4.827 pregleda

Najnovija ↓

SQL UPDATE komanda koja će pomnožiti dva polja 13.09.2016. u 17:16 · pre 123 meseca #1
Pozdrav svima...

potrebno mi je pomoći oko SQL UPDATE komande.

u tabeli postoje polja, između ostalih i naziv, 'količina', 'cena' i 'svega' gde je 'svega = količina * cena' . Ako promenim cenu svega bi trebalo da se promeni. SQL poznajem toliko da mogu da koristim najosnovnije, SELECT, INSERT INTO, UPDATE...


Code:

"UPDATE Sifra SET Sif=" + Str(SifPro) + ", naziv='" & NazPro & "', jm='" & JmPro & "' where ID = " + Str(IDSifre) + " ;"


to mi je jasno ali ne znam kako da u jednom SQL upitu pomnožim dve kolone i upišem u treću kolonu istog recordset-a. Glupo je da ih izlistam SELECTOM pa da svaki ponaosob da editujem.

Ima li pomoći?
Potpis
Who are you?
I am Doctor.
Doctor who?
Exactly!
Re: SQL UPDATE komanda koja će pomnožiti dva polja 14.09.2016. u 11:59 · pre 123 meseca #4
Nema razloga da uopste imas kolonu Svega jer je mozes uvek dobiti sa Kolicina * Cena(u svakom SELECT-u, kad god zatreba)
Ukoliko bas hoces da imas i taj podatak u bazi, mada je nepotreban, onda radis update isto kao i za kolicinu ili cenu:
Update sifra set kolicina = @kolicina, cena = @cena, svega = @kolicina * @cena where ID = ......
Re: SQL UPDATE komanda koja će pomnožiti dva polja 14.09.2016. u 12:15 · pre 123 meseca
izmenjeno 1 put, poslednji put djoka_l 14.09.2016. u 12:44
  1. djoka_l14.09.2016. u 12:44zapis iz teksta poruke
#5
Uz pretpostavku da se tabela zove neka_tabela i da ima kolone sifra, kolicina, cena, ukupno

UPDATE neka_tabela
set (cena = NOVACENA, ukupno = kolicina * NOVACENA)
where sifra = SIFRA

Dakle, u UPDATE (i u drugim upitima) referenciraš trenutni sadržaj polja sloga nad kojim radiš tako što navedeš ime polja. Znači, kada sam napisao kolicina u update to znači ona vrednost koja se nalazi u polju kolicina sloga kojeg menjam...

Ono SIFRA i NOVACENA su neki konkretni podaci (brojevi) koje treba da ubaciš u upit.
Citat:
SQL poznajem toliko da mogu da koristim najosnovnije

Uzgred, SQL se ne uči "usput". Ili ga nauči kako treba, ili nemoj da pišeš programe koji treba da rade sa relacionom bazom.
Sviđa mi se1
Re: SQL UPDATE komanda koja će pomnožiti dva polja 14.09.2016. u 14:18 · pre 123 meseca #7
Hvala na odgovoru, ovo će rešiti moj problem.
Citat:

Uzgred, SQL se ne uči "usput". Ili ga nauči kako treba, ili nemoj da pišeš programe koji treba da rade sa relacionom bazom.

na moju veliku žalost, sve što sam naučio, naučio sam "usput", naiđem na problem, rešim ga i naučim. Nisam završio škole vezane za IT pa sam svestan svojih mogućnosti. Zato sam i postavio pitanje na zadatu temu na odgovarajućem forumu.
Potpis
Who are you?
I am Doctor.
Doctor who?
Exactly!
Re: SQL UPDATE komanda koja će pomnožiti dva polja 14.09.2016. u 15:40 · pre 123 meseca #8
Ako ja dobro razumem tebi treba da kada neko uradi update kolone "cena" da se "svega" promeni automatski?

To radis sa triggerom. On okida nakon sto se izvrsi izmena a ti uhvatis novi podatak (tabela inserted.* vidljiva samo u triggeru) i pomnozis cenom i upises u "svega".

A inace, takav dizajn baze je katastrofalan ako te neko pita :)

A da... a kod koji si naveo u prvoj poruci je izuzetan... ako hoces da omogucis sql injection :)
Re: SQL UPDATE komanda koja će pomnožiti dva polja 14.09.2016. u 20:47 · pre 123 meseca
izmenjeno 1 put, poslednji put godoreba 14.09.2016. u 23:29
  1. godoreba14.09.2016. u 23:29zapis iz teksta poruke
#9
Citat:
Informer: Ako ja dobro razumem tebi treba da kada neko uradi update kolone "cena" da se "svega" promeni automatski?

To radis sa triggerom. On okida nakon sto se izvrsi izmena a ti uhvatis novi podatak (tabela inserted.* vidljiva samo u triggeru) i pomnozis cenom i upises u "svega".

A inace, takav dizajn baze je katastrofalan ako te neko pita :)

A da... a kod koji si naveo u prvoj poruci je izuzetan... ako hoces da omogucis sql injection :)


Program je rađen 2002. u VB6 sa access-ovim bazama i ovo je dorada jer je klijent ubacio normative za pravljenje gotovih proizvoda.

Ah... tada sam shvatio da je baza loše kreirana.

Do skoro je samo prodavao gotove proizvode tako da je ta postavka stvari "pila vodu"... A sada, sa proizvodnjom, kad promeni cenu repromaterijala, treba da se promeni cena u svim normativima koji koriste taj materijal, da bi znao koliko njega košta da napravi proizvod.

Ne želim da menjam strukturu baza jer bih morao previše da menjam kod. Ne isplati se.

tako da...

moram se snaći u zadatim uslovima :)

btw...
aplikacija je offline na kompu u magacinu tako da SQL injection nema smisla, ako neko hoće da napakosti, jednostavno može da obriše same baze.
Potpis
Who are you?
I am Doctor.
Doctor who?
Exactly!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme