Potrzebuje wykonać następującą operację w bazie PostgreSQL
Podaje dwie zmienne liczbowe a i b które zapisują się w oddzielnych kolumnach kolumnaa i kolumnab. W kolumna_c potrzebuje zapisać wynik dodawania a i b która wykona się w momencie wysłania zapytania z aplikacji.
Jak najlepiej wykonać takie zadanie poprzez wyzwalacz czy funkcje ?
@diabel_z_piekla: Chciałem sumować wartości składowe do wystawienia faktury w programie aby zostały w bazie danych ale faktycznie będzie lepiej jak sumy będę wyświetlał w programie a nie przechowywane w bazie
@diabel_z_piekla: tylko mam jeszcze jeden problem jak faktura została wystawiona w lutym a w marcu zostaną zmienione sumy częściowe (np . podatek ) wtedy suma w fakturze lutowej również się zmieni mimo,że została wystawiona na starych zasadach
@energetyk: Czyli modelujesz jakiś system fakturowy? Rozumiem, że w kolumnach była kwota netto i podatek. Nie znam pełnych wymagań, ale miałbym 2 tabele: faktura i pozycja. Tabela faktura ma datę wystawienia itp itd. W tabeli pozycja jest id faktury, nazwa pozycji, kwota netto, stawka/kwota podatku.
Faktury wystawionej chyba nie możesz modyfikować, czyli ona pozostaje bez zmian. Do korekty tworzysz nową fakturę, kopiujesz pozycje z oryginału i korygujesz odpowiednie pozycje. W tabeli
@diabel_z_piekla: właśnie podobnie myślałem aby rozbić na dwie tabele. Czyli sumowanie i zapis sumy do tabeli odpuścić sobie i wyświetlać sumy tylko w programie ?
@energetyk: Tak, sumę zrobisz po stronie aplikacji, ewentualnie nawet na poziomie selecta: select cena, podatek, cena + podatek as cena_calkowita from pozycja where ...
@diabel_z_piekla Czyli jeśli faktura składa się z 5 pozycji składowych i każda z nich zawiera inne wartości i stawki to w tabeli pozycja zapisuje 5 rekordów, które grupuje na fakturze poprzez klucz faktura_id ?
@energetyk: Tak, w ten sposób modelujesz relacje 1 do wielu (1 faktura ma wiele pozycji, każda pozycja istnieje tylko w 1 fakturze, nawet jeśli ten sam produkt został kupiony po tej samej cenie w takiej samej ilości sztuk to jest to osobna pozycja w innej fakturze. Jak będziesz miał draft faktury to usunięcie/modyfikacja pozycji nie powinna modyfikować innych faktur). Jak chcesz wyświetlić informację o fakturze to wyciągasz podstawowe dane z tabeli
@energetyk zapisanie sumy faktury w tabeli jest jak najbardziej okej, ale po co to liczyć po stronie bazy? Jak masz tylko jeden program podpięty do bazy to w nim powinna być logika
Jaka można mieć tutaj motywację do pracy skoro jakiś cięć będzie zarabiał tyle co ja na magazynie. Automatycznie moje chcecie do pracy są zerowe więc daje z siebie minimum. Nie warto się starać bo można dorobić się tylko garba. #pracbaza #inflacja
Podaje dwie zmienne liczbowe a i b które zapisują się w oddzielnych kolumnach kolumnaa i kolumnab.
W kolumna_c potrzebuje zapisać wynik dodawania a i b która wykona się w momencie wysłania zapytania z aplikacji.
Jak najlepiej wykonać takie zadanie poprzez wyzwalacz czy funkcje ?
#programowanie #bazydanych #sql
Komentarz usunięty przez autora
Nie znam pełnych wymagań, ale miałbym 2 tabele: faktura i pozycja.
Tabela faktura ma datę wystawienia itp itd.
W tabeli pozycja jest id faktury, nazwa pozycji, kwota netto, stawka/kwota podatku.
Faktury wystawionej chyba nie możesz modyfikować, czyli ona pozostaje bez zmian. Do korekty tworzysz nową fakturę, kopiujesz pozycje z oryginału i korygujesz odpowiednie pozycje. W tabeli
select cena, podatek, cena + podatek as cena_calkowita from pozycja where ...
Komentarz usunięty przez autora
Jak chcesz wyświetlić informację o fakturze to wyciągasz podstawowe dane z tabeli