Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Tabela z rekordem bilansu otwarcia
krzesik
post 11.09.2014, 14:21:07
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


Witam,
mam tabelę KASA a w niej pola: id_kasa, rodzaj, kto, kwota

jest to działający projekt, dane ładnie zasilają tabelę, ale....
chciałbym aby w dowolnym momencie można było "wyregulować stan kasy" poprzez bilans otwarcia.
na dzień dzisiejszy w tabeli mam tekie rekordy:
1;KP;Adam;100
2;KP;Wiesiek;200
3;KW;Adam;50

....... itd
ale w kasie fizycznie jest 500 zł, więc chciałbym dopisać rekord do bazy:
4;BO;Bilans otwarcia;500
to jest robione ok, ale nie wiem jak pokazać aktualne saldo, bo musiał bym się zahaczyć od BO i tu utknąłem
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
phpion
post 11.09.2014, 14:29:39
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




O ile dobrze rozumiem - musisz znaleźć ostatni rekord BO (przyda Ci się np. sortowanie lub MAX), a potem od niego odjąć/dodać/co tam potrzebujesz wszystkie kwoty występujące po nim.
Go to the top of the page
+Quote Post
Greg0
post 11.09.2014, 14:32:17
Post #3





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Dla bilansu otwarcia zrobiłbym osobną tabelę
Go to the top of the page
+Quote Post
krzesik
post 11.09.2014, 14:35:42
Post #4





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


Tak mi się wydaje że muszę odczytać ostatni BO w tabeli i późniejsze zapisy dodać lub odjąć, ale nie bardzo wiem jak wyszukać ten BO.
więc tak, wyłuskanie ostatniego zapisanego BO już mam:
  1. SELECT * FROM kasa WHERE id_kasa=(SELECT MAX(id_kasa) FROM kasa WHERE rodzaj='BO')

ale jak dodać/odjąć wszystko co jest później?


A po co kolejną tabelę? W sumie to chyba jeden czort?

Ten post edytował krzesik 11.09.2014, 14:44:40
Go to the top of the page
+Quote Post
phpkos
post 11.09.2014, 14:50:05
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.09.2014

Ostrzeżenie: (0%)
-----


Cytat(krzesik @ 11.09.2014, 15:35:42 ) *
ale jak dodać/odjąć wszystko co jest później?


Musisz napisać obsługę tworzenia BO z danego okresu. Przydałby się jeszcze jakiś stempel czasowy, a daty u Ciebie brak.
Go to the top of the page
+Quote Post
mmmmmmm
post 11.09.2014, 15:09:37
Post #6





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Zakłądając, że id_kasa jest rosnące
  1. SELECT Sum(When rodzaj='KW' then -1 else 1 end*kwota) FROM kasa WHERE id_kasa>=(SELECT MAX(id_kasa) FROM kasa WHERE rodzaj='BO')
Go to the top of the page
+Quote Post
krzesik
post 11.09.2014, 15:14:34
Post #7





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


zrobiłem tak:
  1. SELECT SUM(kwota) FROM kasa WHERE (id_kasa>=(SELECT MAX(id_kasa) FROM kasa WHERE rodzaj='BO'))";

chyba nie jest najgorzej? w każdym razie działa
Go to the top of the page
+Quote Post
mmmmmmm
post 11.09.2014, 18:38:46
Post #8





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


No jest źle. Bo KW muszą być na minus.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:44