Novo

Forum kao aplikacija na telefonu

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

update polja ukoliko se id pojavljuje vise puta???

  • 8 odgovora
  • 3.609 pregleda

Najnovija ↓

update polja ukoliko se id pojavljuje vise puta??? 25.12.2009. u 16:41 · pre 205 meseci #1
Imam problem kako da resim sledeci zadatak:

Postoje dve tabele:

Korisnici(id_korisnika, naziv, status) i
Uplate(id_uplate, datum, id_korisnika).

Potrebno je da azuriram sva polja status na vrednost 'razvijen' u tabeli Korisnici ukoliko imaju vise od 10 uplata.

Lako napisem upit koji mi prikaze sve korisnike koji imaju preko 10 uplata.

Primer:
Code:

SELECT uplate.id_korisnika
FROM uplate
GROUP BY id_korisnika
HAVING COUNT(id_uplate)>10;


Ali nisam siguran kako bih sada azurirao polje status iskljucivo za korisnike preko 10 uplata !!!

Pretpostavljam da bih koristio INNER JOIN u UPDATE iskazu ali vec nekoliko pokusaja i nikako da uspe.
Probao sam ovako nesto:
Code:

UPDATE clanovi 
INNER JOIN (SELECT uplate.id_korisnika 
                 FROM uplate 
                 GROUP BY id_korisnika 
                 HAVING COUNT(id_uplate)>10)  AS g 
ON korisnici.id_korisnika=g.id_korisnika 
SET korisnici.status = "razvijen";


Moze pomoc?
Re: update polja ukoliko se id pojavljuje vise puta??? 25.12.2009. u 23:34 · pre 205 meseci #2
Mislim da podupit, kao što je tvoj prvi, ne može da bude deo Update Query-ja, jer koristi funkcije za izračunavanje. Takvi query-ji su ne editabilni.
Pokušaj da napišeš Make-Table Query. Kad budeš imao dodatnu tabelu kao izvor, moći ćeš da uradiš ažuriranje tvoje tabele Korisnici putem Update Query-ja.
Potpis
https://mzahorjanski.wixsite.com/mzahorjanski
https://www.fiverr.com/miroljubzahorja?up_rollout=true
https://www.youtube.com/@miroljubzahorjanski


Re: update polja ukoliko se id pojavljuje vise puta??? 26.12.2009. u 09:26 · pre 205 meseci #3
To je ok.
Resenje sa Make Table Query-jem naravno da radi ali to su vec 2 koraka. Zeleo sam to da izbegnem.

Znam da mi upit nije editabilan zbog izracunavanja, ali ne vidim drugaciji nacin kako da dobijem informaciju o korisnicima koji imaju vise od 10 uplata,
a da potom azuriram polje u Korisnicima.

Da li postoji nacin da napisem jedan upit koji ce azurirati polje svakog korisnika preko 10 uplata?


Re: update polja ukoliko se id pojavljuje vise puta??? 27.12.2009. u 14:49 · pre 205 meseci #5
Da li postoji jos neki status? Iz ovog sto si do sada napisao ispada da ima status razvijen i nije razvijen!
I od cega zavisi status? Samo od broja uplata? ako je tako, zasto jednostavno ne prebrojis uplate. Do 10 i preko 10 uplata. Prebrojavanje u jednoj tabeli je veoma brza operacija.
Ja licno sve sto se dobija na osnovu nekog racuna ne stavljam u tabele. Tako su me naucili :-)
Re: update polja ukoliko se id pojavljuje vise puta??? 28.12.2009. u 11:41 · pre 205 meseci #6
Ma i mene isto ucili.. :)

U statusu se unosi obican tekst, nije ni bitno gledati sta se unosi.

Poenta je da iz tabele Uplate dobijem id korisnika koji imaju vise od 10 uplata,
a onda na osnovu te informacije da azuriram polje status na neku vrednost za svakog takvog korisnika.

Kao sto rekoh, lako dobijem informaciju koji su ti korisnici iz tabele Uplate, i lako azuriram statuse tih korisnika u tabeli Korisnici.
To su jednostavni upiti.

Ali ne znam da li je moguce napisati u jednom upitu sve to..





Re: update polja ukoliko se id pojavljuje vise puta??? 29.12.2009. u 09:03 · pre 205 meseci #7
Možda ovako:

Code:
UPDATE clanovi SET status='razvijen' where 
id_korisnika IN 
(SELECT uplate.id_korisnika
FROM uplate
GROUP BY id_korisnika
HAVING COUNT(id_uplate)>10)
Potpis
F
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme