Novo

Forum kao aplikacija na telefonu

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

  • 12 odgovora
  • 9.234 pregleda

Najnovija ↓

SQL upit - mySql 28.11.2003. u 10:49 · pre 279 meseci #1
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
Re: SQL upit - mySql 28.11.2003. u 11:55 · pre 279 meseci #2
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.
Re: SQL upit - mySql 28.11.2003. u 13:07 · pre 279 meseci #4
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
Re: SQL upit - mySql 28.11.2003. u 13:12 · pre 279 meseci #5
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.
Re: SQL upit - mySql 28.11.2003. u 13:46 · pre 279 meseci #6
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.
Potpis
BoxUp
interesantna logička igra
Monty Hall paradoks - interaktivni demo
Re: SQL upit - mySql 28.11.2003. u 13:50 · pre 279 meseci #8
Dobro, dobro ljudi pa samo pitam

SELECT Korisnik, SUM(Uplata) AS UkupnoUplata
FROM $tabela WHERE pokrice_uplate='ima' group by korisnik
HAVING UkupnoUplata > 180
Re: SQL upit - mySql 28.11.2003. u 13:53 · pre 279 meseci #9
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.
Potpis
OV SM
LA PK
Re: SQL upit - mySql 28.11.2003. u 19:13 · pre 279 meseci #11
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).
Potpis
Owl
Re: SQL upit - mySql 29.11.2003. u 01:00 · pre 279 meseci #12
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme