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

SQL upit - mySql

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

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 72
*.com



Profil

icon SQL upit - mySql28.11.2003. u 09:49

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
28.11.2003. u 09:49 

broker

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



Profil

icon Re: SQL upit - mySql28.11.2003. u 10:55
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.
28.11.2003. u 10:55 

noviKorisnik
Dejan Katašić
Novi Sad

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

Sajt: www.novikorisnik.net


Profil

icon Re: SQL upit - mySql28.11.2003. u 11:13
Laptopovi

...što bi u ovom slučaju bilo otprilike (u $tabela je ime tabele):

SELECT Korisnik, SUM(Uplata) AS UkupnoUplata
FROM $tabela
HAVING UkupnoUplata > 180
28.11.2003. u 11:13 

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 72
*.com



Profil

icon Re: SQL upit - mySql28.11.2003. u 12:07
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
28.11.2003. u 12:07 

broker

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



Profil

icon Re: SQL upit - mySql28.11.2003. u 12:12
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.
28.11.2003. u 12:12 

noviKorisnik
Dejan Katašić
Novi Sad

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

Sajt: www.novikorisnik.net


Profil

icon Re: SQL upit - mySql28.11.2003. u 12:46
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.
28.11.2003. u 12:46 

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 72
*.com



Profil

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

...here I am to help...
28.11.2003. u 12:46 

KeyboardSound
Banjaluka

Član broj: 8657
Poruke: 72
*.com



Profil

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

SELECT Korisnik, SUM(Uplata) AS UkupnoUplata
FROM $tabela WHERE pokrice_uplate='ima' group by korisnik
HAVING UkupnoUplata > 180
28.11.2003. u 12:50 

markom
Marko Milivojević
Senior Technical Instructor at IPexpert,
Inc.
64°08´N - 21°56´W

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

Jabber: markom@gmail.com
ICQ: 2354227
Sajt: cisco.markom.info


Profil

icon Re: SQL upit - mySql28.11.2003. u 12:53
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.
28.11.2003. u 12:53 

noviKorisnik
Dejan Katašić
Novi Sad

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

Sajt: www.novikorisnik.net


Profil

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

_owl_
Centar - BG

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

Sajt: home.drenik.net/~owl


Profil

icon Re: SQL upit - mySql28.11.2003. u 18:13
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)
) TYPE=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
28.11.2003. u 18:13 

broker

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



Profil

icon Re: SQL upit - mySql29.11.2003. u 00:00
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.
29.11.2003. u 00:00 

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

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

Postavi temu Odgovori

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