Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

SUM integer polja i jos po nesto...

[es] :: MySQL :: SUM integer polja i jos po nesto...

[ Pregleda: 2336 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sassaboss
novi sad

Član broj: 86580
Poruke: 24
*.eunet.yu.



Profil

icon SUM integer polja i jos po nesto...04.11.2006. u 12:18 - pre 212 meseci
Imam jedan problem.

U mojoj tabeli imam integer kolonu u koju se smestaju razne cifre.
Na koji nacin da definisem komandu koja bi proveravala sumu te kolone
i kada dodje do sume vece od npr. 5000 da sve posle toga obrise.

hvala
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: SUM integer polja i jos po nesto...04.11.2006. u 22:29 - pre 212 meseci
Zavisi od programskog jezika ali SQL bi treba ovako da izgleda
SELECT SUM(ime_kolone) FROM ime_tabele

Onda u programu ispitas vrijednost

if vracena_vrijednost > 500 then DELETE FROM ime_tabele

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: SUM integer polja i jos po nesto...05.11.2006. u 01:38 - pre 212 meseci
Hm, nisam siguran da sam te najbolje razumio za dio o "brisanju" nakon sto suma predje 5000. Da li mislis mozda da se ne prikazuju rezultati kada suma predje 5 000 ili da se odredjeni redovi brisu iz tabele (sa DELETE)?

Ako samo zelis izbaciti te redove iz rezultata pri ispisu, onda mozes ovako (sa GROUP BY, a mozes i bez):
Code:
SELECT SUM(kolona) AS suma
FROM tabela
GROUP BY neka_kolona
HAVING suma <= 5000;

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

zikaa
Zivorad Antonijevic
Beograd

Član broj: 10078
Poruke: 107
195.252.90.*

Sajt: zantonijevic.com


+1 Profil

icon Re: SUM integer polja i jos po nesto...05.11.2006. u 15:32 - pre 212 meseci
Pod pretpostavkom da imas neki id po kime ih redjas (u koloni a i u sabiranju) npr posle
CREATE TABLE tabela(id INT UNSIGNED AUTO_INCREMENT NOT NULL, broj INT, PRIMARY KEY (id))

da bi dobio sve kolone koje su ti visak upit je
Code:

SELECT p.id, SUM( IF( q.id <= p.id, q.broj , 0 ) ) AS suma
FROM tabela p, tabela q
GROUP BY id
HAVING suma >5000


ako tabela izgleda ovako
CREATE TABLE tabela(broj INT UNSIGNED NOT NULL, PRIMARY KEY (broj))
upit bi mogao biti
Code:

SELECT p.broj, SUM( IF( q.broj <= p.broj, q.broj , 0 ) ) AS suma
FROM tabela p, tabela q
GROUP BY id
HAVING suma >5000


Ovaj drugi ce brisati vrste sa najvecim vrednostima broj-a.

U oba slucaja mora da postoji neki kriterijum na osnovu kog ces da ih redjas moze to da bude bilo koje polje a ne samo id (iiz onoga SUM( IF( q.id <= p.id, q.broj , 0 ) )
na primer i varchar i druga. Bitno je da postoji jedno koje ce da sluzi za uredjenje niza cije parcijalne sume racunas.
Ako imas mysql 5 u prvom slucaju mozes i da ih obrises jednim potezom
Code:

DELETE FROM tabela t WHERE id IN 
(SELECT id FROM 
      (SELECT p.id, SUM( IF( q.id <= p.id, q.broj , 0 ) ) AS suma
      FROM tabela p, tabela q
     GROUP BY id
     HAVING suma >5000
   ) AS tmp1
) AS tmp0


a u drugom slicno
 
Odgovor na temu

sassaboss
novi sad

Član broj: 86580
Poruke: 24
195.252.100.*



Profil

icon Re: SUM integer polja i jos po nesto...05.11.2006. u 17:05 - pre 212 meseci
Mysql mi je 4.1

Ja imam redne brojeve (od 1 do 200 npr.) za tabelu u kojoj se smestaju te cifre koje sam vec napomenuo
znaci cifra 300 moze da ima redni broj 1 a cifra 250 moze da bude pod rednim brojem 2 itd.
(npr kolona RED ima redne brojeve a kolona TAD u njoj smestam cifre )

Meni sada treba da nadjem nacim kako da izbrisem od zadnjeg reda u tabeli sve do onog reda
gde suma svih cifara u koloni TAD ne prelazi npr 5000.
Tj. ako imam

RED - TAD
1 - 1000
2 - 500
3 - 800
4 - 2500
5 - 1700
6 - 670
7 - 990

Kako bi sad izgledala komanda koja bi obrisala odozdo nagore sve redove do onog
gde suma u TAD ne pralazi 4800.

Hvala
 
Odgovor na temu

zikaa
Zivorad Antonijevic
Beograd

Član broj: 10078
Poruke: 107
195.252.90.*

Sajt: zantonijevic.com


+1 Profil

icon Re: SUM integer polja i jos po nesto...05.11.2006. u 18:23 - pre 212 meseci
Pa dobro covek jel si pismen sve ti pise.
Jel znas ti nesto o php-u uopste , pogledaj primer odozgo prvi slucaj ,
napravi tabelu povezi se na bazu pokupi id-ijeve i obrisi brojeve sa datim id-ijevima.
Ako ne znas toliko nadji nekog da ti napise skript i nemoj se dzabe muciti.
 
Odgovor na temu

[es] :: MySQL :: SUM integer polja i jos po nesto...

[ Pregleda: 2336 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.