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

insert i agregate u jednom upitu

[es] :: MySQL :: insert i agregate u jednom upitu

[ Pregleda: 1872 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cesare
Misko Petrovic

Član broj: 55805
Poruke: 201
*.dynamic.isp.telekom.rs.



+1 Profil

icon insert i agregate u jednom upitu24.01.2011. u 12:55 - pre 161 meseci
Pozdrav svima !!!

Da li je moguće koristeći komande INSERT ili UPDATE kao vrednost nekog polja tabele ubaciti vrednost neke agregatne funkcije, npr. COUNT(). Ovo mi je potrebno da bih prilikom upisa zapisa u tabelu računa generisao broj računa kao brojračuna/godinaračuna. Pošto podatke iz ove baze ažurira program rađen u VCNET-u, ideja je da se sa jednim INSERT odradi sve npr. INSERT INTO tblracuni (brojracuna) VALUES (COUNT(brojracuna) + 1 + tekucagodina). Ako ovakva varijanta nije moguća, postoji li neko alternativno rešenje, ali da sve bude u jednom upitu ?

Unapred hvala !!!
 
Odgovor na temu

mret
Radovan Bacovic
Senior Data Warehouse Developer
Kindred Group
Stockholm, Sweden

Član broj: 78386
Poruke: 62
...148.91.adsl.dyn.beotel.net.

Sajt: www.kindredgroup.com


Profil

icon Re: insert i agregate u jednom upitu24.01.2011. u 13:21 - pre 161 meseci
Ovako tesko da moze da se uradi. Postoje dve kombinacije
1. INSERT + UPDATE
2. INSERT + TRIGGER


------------
CREATE TABLE `testiraj` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`dat` DATETIME NOT NULL,
`genbroj` VARCHAR(45),
PRIMARY KEY (`id`)
)
ENGINE = InnoDB;


1. varijanta.
insert into testiraj(dat) values(now());
set @id=last_insert_id();
update testiraj set genbroj=concat(@id,'/',year(dat)) where id=@id;

2. varijanta
insert into testiraj(dat) values(now());

... i onda trigger uradi svoje
drop tigger a_testi;
CREATE TRIGGER `a_testi` before INSERT
ON testiraj FOR EACH ROW
BEGIN
set new.genbroj=concat((select count(*)+1 from testiraj),'/',year(new.dat));
END;


sada vidi kako ti je lakse.....
/*A sad odo` malo napolje*/
 
Odgovor na temu

[es] :: MySQL :: insert i agregate u jednom upitu

[ Pregleda: 1872 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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