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

SQL upit - mySql

[es] :: MySQL :: SQL upit - mySql

[ Pregleda: 5227 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 73
*.com



Profil

icon SQL upit - mySql28.11.2003. u 09:49 - pre 188 meseci
Radim sa php/Mysql/Apache

Tabela u bazi ima strukturu:

Korisnik Uplata

Pero 170,00
Milan 150,00
Dragan 44,20
Milan 50,00
Dragan 10,00
Nenad 350,00

Kako da definisem sql upit da mi vrati sve korisnike i njihove sume uplata za slucaj kada je suma uplata veca od npr. 180,00
Ono sto mi treba kao izlaz je:
Milan 200,00
Nenad 350,00

Moram li koristiti TEMPORARY TABLE?

Pozdrav
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.ptt.yu



+10 Profil

icon Re: SQL upit - mySql28.11.2003. u 10:55 - pre 188 meseci
Ne treba ti pomocna tabela. Koristi HAVING klauzulu u SELECT upitu umesto WHERE

RAzliak izmedju WHERE i HAVING je u tome sto se WHERE uslov primenjuje na slogove izvornih datoteka koje su ukljucene u upit pre izbora sloga a HAVING se primenjuje na rezultat upita, dakle kada je izbor slogova vec izvrsen.

U HAVING mozes da stavis uslove koji ukljucuju i polja napravljena samim upitom a koja ne postoje u izvornim datotekama.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: SQL upit - mySql28.11.2003. u 11:13 - pre 188 meseci
...što bi u ovom slučaju bilo otprilike (u $tabela je ime tabele):

SELECT Korisnik, SUM(Uplata) AS UkupnoUplata
FROM $tabela
HAVING UkupnoUplata > 180
 
Odgovor na temu

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 73
*.com



Profil

icon Re: SQL upit - mySql28.11.2003. u 12:07 - pre 188 meseci
To je to i radi ali sad moram malo zakomplikovati:

U tabeli imam i trecu kolonu pokrice_uplate (moguce vrijednosti ima i nema), kako cu to isto da postignem ali npr. samo za validne uplate.

Pokusao sam sa:

SELECT Korisnik, SUM(Uplata) AS UkupnoUplata
FROM $tabela
HAVING UkupnoUplata > 180 and pokrice_uplate='ima'
ali mi prijavljuje gresku:
Unknown column pokrice_uplate in 'having clause'

Hvala puno za ovo do sad
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+10 Profil

icon Re: SQL upit - mySql28.11.2003. u 12:12 - pre 188 meseci
Dejane, ja mu namerno nisam dao gotov upit da bi morao da pogledaj malo u prirucnik za sql. A iz pitanja koje je usledilo jasno je da nije ni privirio u njega. Nije bas pametno trositi vreme na nekoga ko nije odvojio vreme ni da prouci najosnovije stvari oko SELECT upita.

Za HAVING sam mu progledao kroz prste, jer ljudi cesto previde tu komandu.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: SQL upit - mySql28.11.2003. u 12:46 - pre 188 meseci
OK, slažem se da je bolje da radimo edukativno nego da se daju instant rešenja.

keyboardSound, pročitaj još jednom
Citat:
Razlika izmedju WHERE i HAVING je u tome sto se WHERE uslov primenjuje na slogove izvornih datoteka koje su ukljucene u upit pre izbora sloga a HAVING se primenjuje na rezultat upita, dakle kada je izbor slogova vec izvrsen.
Trebalo bi da je dovoljno. Molim te samo da objaviš rešenje, ako ti nije problem.
 
Odgovor na temu

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 73
*.com



Profil

icon Re: SQL upit - mySql28.11.2003. u 12:46 - pre 188 meseci

...here I am to help...
 
Odgovor na temu

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 73
*.com



Profil

icon Re: SQL upit - mySql28.11.2003. u 12:50 - pre 188 meseci
Dobro, dobro ljudi pa samo pitam

SELECT Korisnik, SUM(Uplata) AS UkupnoUplata
FROM $tabela WHERE pokrice_uplate='ima' group by korisnik
HAVING UkupnoUplata > 180
 
Odgovor na temu

markom
Marko Milivojević
Network Engineer
Google
Mountain View

Član broj: 18427
Poruke: 4227
*.lina.net

Sajt: https://markom.rs


+16 Profil

icon Re: SQL upit - mySql28.11.2003. u 12:53 - pre 188 meseci
Citat:
broker:
Dejane, ja mu namerno nisam dao gotov upit da bi morao da pogledaj malo u prirucnik za sql. A iz pitanja koje je usledilo jasno je da nije ni privirio u njega. Nije bas pametno trositi vreme na nekoga ko nije odvojio vreme ni da prouci najosnovije stvari oko SELECT upita.

Za HAVING sam mu progledao kroz prste, jer ljudi cesto previde tu komandu.


Ovo je užasno bezobrazan komentar, koji je recimo mene uvredio. Ja radim sa SQL-om malo-po-malo već više od nekoliko godina i HAVING klauzula je za mene bila otkrovenje. <offtopic>Smatraj da od mene ubuduće nećeš dobiti nikakav smislen odgovor vezan za bilo šta stručno - zaboga, sve piše u dokumentaciji</offtopic>.

Back to subject. HAVING ne radi bez GROUP BY u MySQL-u.

Citat:
U tabeli imam i trecu kolonu pokrice_uplate (moguce vrijednosti ima i nema), kako cu to isto da postignem ali npr. samo za validne uplate.


Code:

SELECT
  korisnik,
  sum(uplata) AS suma
FROM
  tablea
WHERE
  pokrice = 'ima'
GROUP BY
  korisnik
HAVING
  suma > 180


Ono iznad bi trebalo da radi.

Marko.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: SQL upit - mySql28.11.2003. u 12:58 - pre 188 meseci
Marko, pogledaj malo bolje i vidi da je kritika urodila plodom - KeyboardSound je sam rešio problem.
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1042
*.drenik.net



+3 Profil

icon Re: SQL upit - mySql28.11.2003. u 18:13 - pre 188 meseci
Citat:
mdm:
Back to subject. HAVING ne radi bez GROUP BY u MySQL-u.

Gresis ovaj silno gresis sinko. U slucaju da se SELECT upit izvrsava bez GROUP BY klauzule onda se ceo rezultat posmatra kao jedna grupa i na njega se primenjuje uslov iz HAVING klauzule (ovako je po SQL standardu, a takodje je podrzano i u MySQL-u). Primer:
Code:

CREATE TABLE rang (
  idrang int(11) NOT NULL default '0',
  ime varchar(255) NOT NULL default '',
  PRIMARY KEY  (idrang)
) ENGINE=MyISAM;
INSERT INTO rang VALUES (1, '1');
INSERT INTO rang VALUES (2, '2');
INSERT INTO rang VALUES (3, '3');
INSERT INTO rang VALUES (4, '4');
INSERT INTO rang VALUES (5, '5');
SELECT idrang FROM `rang` HAVING idrang>3

Kao sto vidis radi (MySQL 3.23.56).

Owl
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+10 Profil

icon Re: SQL upit - mySql29.11.2003. u 00:00 - pre 188 meseci
Citat:
mdm:
<offtopic>Smatraj da od mene ubuduće nećeš dobiti nikakav smislen odgovor vezan za bilo šta stručno - zaboga, sve piše u dokumentaciji</offtopic>.


Nema problema Marko, zato cu ja tebi svakako pomoci kad mogu jer znam da ces da pitas nesto sto nisi uspeo da resis i pored svojski ulozenog truda i nakon sto si proucio dokumentaciju.

U svakm slucjau ja sam momku pomogao: dao sam mu dovoljno podataka da SAM lako dodje do resenja. Nekazu Kinezi za dzabe: ako ti prosjak trazi da mu das ribu ti ga nauci da peca.
 
Odgovor na temu

[es] :: MySQL :: SQL upit - mySql

[ Pregleda: 5227 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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