Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyzwalacze, Problem z Selectem
Forum PHP.pl > Forum > Bazy danych > MySQL
diodadioda
Witam
Mam pewien problem z wyzwalaczem
Mam 2 Tabele zakupy2014 i ostatnie_ceny_wg_indeks
Pomijając do teraz robi wyzwalacz (opisane w :
Temat: Grupowanie sortowanie ostatnie 3 wyniki MySQL)
W tabeli zakupy2014 jest kolumna ilosc jej wartość powinna być wprowadzana do tabeli ostatnie_ceny_wg_indeks do kolumny ilosc_w_2014 i to dziala, jednak chciałbym, żeby ostatnią wartość dodało do istaniejącej w tabeli zakupy2014 i taką nadpisało.
Teraz wygląda to tak:
BEGIN
DECLARE v_cena_przedost, v_cena_przedprzedost DECIMAL(8,2) DEFAULT NULL;
DECLARE v_data_przedost, v_data_przedprzedost date DEFAULT NULL;
DECLARE ilosc_w_2014 DECIMAL(8,2) DEFAULT NULL;
SET @x = (SELECT ilosc_w_2014 FROM ostatnie_ceny_wg_indeks where indeks = NEW.indeks);
SET @z = NEW.ilosc+@x;
SELECT cena_ost, data_ost, cena_przedost, data_przedost INTO v_cena_przedost, v_data_przedost, v_cena_przedprzedost, v_data_przedprzedost
FROM ostatnie_ceny_wg_indeks
WHERE indeks = NEW.indeks;
REPLACE ostatnie_ceny_wg_indeks (nazwa_towaru, indeks, cena_ost, data_ost, cena_przedost, data_przedost, cena_przedprzedost, data_przedprzedost, ilosc_w_2014)
VALUE (NEW.nazwa_towaru, NEW.indeks, NEW.cena_zakupu, NEW.data_realizacji, v_cena_przedost, v_data_przedost, v_cena_przedprzedost, v_data_przedprzedost, @z );
END

Coś nie tak robię z SET @x bo jeśli zamianst formuły SET @z = NEW.ilosc+@x; dodan SET @z = NEW.ilosc+1; to dolicza tą 1 i podmienia jak trzeba. Przy tym co napisałem zwraca NULL.
Nakierujcie mnie proszę.
mmmmmmm
SET @x = Coalesce((SELECT ilosc_w_2014 FROM ostatnie_ceny_wg_indeks where indeks = NEW.indeks),0);
diodadioda
No po takim zabiegu do tabeli wstawia tylko ostatnia wartosc, nie dolicza do tej istniejącej w bazie...

Nie wiem co robilem wczesniej ale teraz faktycznie działa...musze to prześledzić
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.