- nije dobra verzija za redni broj računa staviti char polje, treba integer, razlog? select max(redn_broj) neće vratiti ispravnu vrijednost kao što niti sort ne radi ispravno ako se integer upisuje kao text.
Code:
select max(broj_fakture) as broj from fakture where extract(year from datum_fakture) = 2018
ili
select max(broj_fakture) as broj from fakture where godina_fakture = 2018
u prvom primjeru godina se isčitava iz datuma fakture, a u drugom se koristi posebni field za godinu. Meni osobno je pogodniji prvi jer nemam nepotrebne godine i upisa...
U Delphi-u učitaš Qry.FieldByName('broj').asInteger + 1 što ti daje sljedeći redni broj.
Ako je prva faktura u godini, select će vratiti NULL, ali će ti ga Delphi "asInteger" vratiti kao "0".
Godinu šalješ kao parametar tako da ne mijenjaš qry.
Normalno, u where možeš ubaciti i tip dokumenta ako su ti u istoj tablici npr:
where godina = :godina and tip_dok = :tip_dok