Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odejmowanie wartosci z danej kolumnu z dwoch wierszy "jednocześnie"
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
Wolfie
Witam,


Mam mniej wiecej taka strukutre tabeli w bazie

id | ilosc (double) |
----------------------
1 | 2.56
2 | 3
1 | 4


No i teraz powiedzmy ze przychodzi z jakiegos skryptu wartosc 5 dla id 1

I teraz co musze zrobic to odjąc z pierwszego wiersza wszystko, a z 3-go reszte z odejmowania 5 - 2.56 , ale wogole nie wiem jak mam sie za to zabrac, czy trzeba napisac funkcje czy juz moze jest jakas gotowa ?

Poratujcie panowie, nie znam się na bazach,

moze jakies pomocne linki ?

Pozdrawiam
cojack
  1. CREATE FUNCTION "odejmuj_mi_tu" ( "id_wiersza" INT, "ile" DOUBLE ) RETURN VOID AS $$
  2. DECLARE
  3. "_reszta" DOUBLE;
  4. BEGIN
  5. UPDATE "tabela" SET "ilosc" = "ilosc" - "ile" WHERE "id" = "id_wiersza" RETURNING "ilosc" INTO "_reszta";
  6.  
  7. UPDATE "tabela" SET "ilosc" = "ilosc" - "_reszta" WHERE "id" <> "id_wiersza";
  8. END;
  9. $$ LANGUAGE 'plpgsql';


Tam brakuje sprawdzania danych, także sobie dopisz albo i nie.

Wywołanie?

  1. SELECT "odejmuj_mi_tu"( 1, 5::DOUBLE );
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-2024 Invision Power Services, Inc.