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

Upit - deluje prosto, ali nikako da ga resim.

[es] :: MySQL :: Upit - deluje prosto, ali nikako da ga resim.

[ Pregleda: 1236 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
89.216.108.*

Sajt: www.digitconsulting.rs


+20 Profil

icon Upit - deluje prosto, ali nikako da ga resim.22.04.2020. u 22:39 - pre 48 meseci
Evo test date:

Code:

CREATE TABLE `test` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `MemberID` int(11) DEFAULT NULL,
  `Year` int(11) DEFAULT NULL,
  `Ammount` decimal(11,0) DEFAULT NULL,
  PRIMARY KEY (`ID`)
)

INSERT INTO `test` (`ID`, `MemberID`, `Year`, `Ammount`) VALUES 
  (1, 1, 2015, 500),
  (2, 2, 2016, 1000),
  (3, 1, 2016, 1000),
  (4, 1, 2014, 1000),
  (5, 2, 2017, 1000),
  (6, 2, 2018, 1000),
  (7, 2, 2019, 1000),
  (8, 2, 2020, 1000),
  (9, 1, 2020, 1000),
  (10, 1, 2015, 500),
  (11, 1, 2018, 1000),
  (12, 1, 2017, 1000),
  (13, 1, 2019, 1000),
  (14, 3, 2016, 500),
  (15, 3, 2016, 500),
  (16, 3, 2017, 500),
  (17, 3, 2017, 500),
  (18, 3, 2018, 1000),
  (19, 3, 2019, 1000),
  (20, 3, 2020, 1000),
  (21, 4, 2020, 1000),
  (22, 5, 2019, 1000),
  (23, 5, 2020, 1000);


Treba mi upit koji će da izdvoji samo one koji imaju iznos u 2020 godini ali i da nemaju iznose u prethodnim godinama.
Iz prilozene test date očekivani rezultat treba da bude samo record (21, 4, 2020, 1000)

Tnx i pozdrav.

 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 84
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Upit - deluje prosto, ali nikako da ga resim.23.04.2020. u 00:25 - pre 48 meseci

Moze ovako:
Code:
SELECT ID, MemberID, Ammount, GROUP_CONCAT(DISTINCT Year) as conc FROM `test` GROUP by MemberID HAVING conc = '2020'

 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
89.216.108.*

Sajt: www.digitconsulting.rs


+20 Profil

icon Re: Upit - deluje prosto, ali nikako da ga resim.23.04.2020. u 08:29 - pre 48 meseci
Hvala puno!

Kakva fora da se elegantno otarasis neželjenih sa GROUP_CONCAT DISTINCT :-)
Ne bi se setio za još tri karantina.

 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Upit - deluje prosto, ali nikako da ga resim.23.04.2020. u 08:45 - pre 48 meseci
Ne koristim puno MySQL, pa bih zato napisao upit koji radi na svim bazama:
Code:

  select *
  from test x
  where not exists ( select 1 from test where memberid=x.memberid and year != 2020);


Ovaj upit je dobar ako je memberid indeksiran. Sporija verzija bi bila sa NOT IN konstrukcijom gde mi unutrašnji upit vratio memberid onih koji su imali uplatu pre 2020.
Code:

  select *
  from test x
  where memberid not in ( select distinct memberid from test where year != 2020);

 
Odgovor na temu

[es] :: MySQL :: Upit - deluje prosto, ali nikako da ga resim.

[ Pregleda: 1236 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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