wyszukiwanie max nr faktury
robert - 27-12-2005 10:16
wyszukiwanie max nr faktury
witam wszystkich
pytanie na pozór banalne ale może by ktoś powiedział jak zrobić tabelkę co było by z niej można wyszukać max nr faktury bo jak narazie wszystkie moje próby zawiodły
może ktoś już wcześniej coś takiego robił
jeszcze może powiem ze baza danych jest w sql server 2000
i polecenie max(nr_fak) nie działa tak jak trzeba bo jeżeli nr fak jest w postaci numre/miesiąc/rok to w/w polecenie zawodzi, bo znajduje max ale tylko po pierwszej pozycji na miesiąc już nie zwraca uwagi
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Tomasz Wrzodak - 27-12-2005 10:16
robert napisał(a): > witam wszystkich > > pytanie na pozór banalne > ale może by ktoś powiedział jak zrobić tabelkę co było by z niej można > wyszukać max nr faktury bo jak narazie wszystkie moje próby zawiodły > > może ktoś już wcześniej coś takiego robił > > jeszcze może powiem ze baza danych jest w sql server 2000 > > i polecenie max(nr_fak) nie działa tak jak trzeba bo jeżeli nr fak jest w > postaci numre/miesiąc/rok to w/w polecenie zawodzi, bo znajduje max ale tylko > po pierwszej pozycji na miesiąc już nie zwraca uwagi >
Najlepiej znormalizować
robert - 27-12-2005 10:16
> robert napisał(a): > > witam wszystkich > > > > pytanie na pozór banalne > > ale może by ktoś powiedział jak zrobić tabelkę co było by z niej można > > wyszukać max nr faktury bo jak narazie wszystkie moje próby zawiodły > > > > może ktoś już wcześniej coś takiego robił > > > > jeszcze może powiem ze baza danych jest w sql server 2000 > > > > i polecenie max(nr_fak) nie działa tak jak trzeba bo jeżeli nr fak jest w > > postaci numre/miesiąc/rok to w/w polecenie zawodzi, bo znajduje max ale tylko > > po pierwszej pozycji na miesiąc już nie zwraca uwagi > > > > Najlepiej znormalizować
wstawiłem nr_fak, miesiąc, rok do oddzielnych kolumn tyko teraz jest problem z zapytaniem
select * from faktura where rok_fak = max(rok_fak)
to nie działa
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
jr - 27-12-2005 10:16
"robert" <robert4720@vp.pl> wrote in message news:1be5.00000106.43a961da@newsgate.onet.pl... >> robert napisał(a): >> > witam wszystkich >> > >> > pytanie na pozór banalne >> > ale może by ktoś powiedział jak zrobić tabelkę co było by z niej można >> > wyszukać max nr faktury bo jak narazie wszystkie moje próby zawiodły >> > >> > może ktoś już wcześniej coś takiego robił >> > >> > jeszcze może powiem ze baza danych jest w sql server 2000 >> > >> > i polecenie max(nr_fak) nie działa tak jak trzeba bo jeżeli nr fak jest >> > w >> > postaci numre/miesiąc/rok to w/w polecenie zawodzi, bo znajduje max ale > tylko >> > po pierwszej pozycji na miesiąc już nie zwraca uwagi >> > >> >> Najlepiej znormalizować > > > wstawiłem nr_fak, miesiąc, rok do oddzielnych kolumn tyko teraz jest > problem z > zapytaniem > > select * from faktura > where rok_fak = max(rok_fak) > > to nie działa >
Moze tak: select top 1 * from faktura order by rok_fak DESC, miesiac_fak DESC, numer_fak DESC
robert4720@vp.pl - 27-12-2005 10:16
> > "robert" <robert4720@vp.pl> wrote in message > news:1be5.00000106.43a961da@newsgate.onet.pl... > >> robert napisał(a): > >> > witam wszystkich > >> > > >> > pytanie na pozór banalne > >> > ale może by ktoś powiedział jak zrobić tabelkę co było by z niej można > >> > wyszukać max nr faktury bo jak narazie wszystkie moje próby zawiodły > >> > > >> > może ktoś już wcześniej coś takiego robił > >> > > >> > jeszcze może powiem ze baza danych jest w sql server 2000 > >> > > >> > i polecenie max(nr_fak) nie działa tak jak trzeba bo jeżeli nr fak jest > >> > w > >> > postaci numre/miesiąc/rok to w/w polecenie zawodzi, bo znajduje max ale > > tylko > >> > po pierwszej pozycji na miesiąc już nie zwraca uwagi > >> > > >> > >> Najlepiej znormalizować > > > > > > wstawiłem nr_fak, miesiąc, rok do oddzielnych kolumn tyko teraz jest > > problem z > > zapytaniem > > > > select * from faktura > > where rok_fak = max(rok_fak) > > > > to nie działa > > > > Moze tak: > select top 1 * from faktura order by rok_fak DESC, miesiac_fak DESC, > numer_fak DESC >
hurrrra działa
dzięki
>
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Noel - 27-12-2005 10:16
Użytkownik robert napisał:
> witam wszystkich > > pytanie na pozór banalne > ale może by ktoś powiedział jak zrobić tabelkę co było by zniej można > wyszukać max nr faktury bo jak narazie wszystkie moje próby zawiodły > > może ktoś już wcześniej coś takiego robił > > jeszcze może powiem ze baza danych jest w sql server 2000 > > i polecenie max(nr_fak) nie działa tak jak trzeba bo jeżeli nr fak jest w > postaci numre/miesiąc/rok to w/w polecenie zawodzi, bo znajduje max ale tylko > po pierwszej pozycji na miesiąc już nie zwraca uwagi >
SQL Server zawiera pomocne funkcje INSTR i SUBSTR.
Trzeba powycinać, posklejać i wybrać max.
-- Tomek "Noel" B.
coś takiego w Oracle działa:
select max( substr(nr_fak,instr(nr_fak,'/',1,2)+1)|| substr(nr_fak,instr(nr_fak,'/',1,1)+1,instr(nr_fak,'/',1,2)-instr(nr_fak,'/',1,1)-1)|| substr(nr_fak,1, instr(nr_fak,'/',1,1)-1)) fak_nr from tabela_faktury
=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 27-12-2005 10:16
Dnia Wed, 21 Dec 2005 15:36:52 +0100, Noel <tbal@go2.pll-l> wklepał(-a):
>coś takiego w Oracle działa: > >select max( > substr(nr_fak,instr(nr_fak,'/',1,2)+1)|| >substr(nr_fak,instr(nr_fak,'/',1,1)+1,instr(nr_fak,'/',1,2)-instr(nr_fak,'/',1,1)-1)|| > substr(nr_fak,1, instr(nr_fak,'/',1,1)-1)) fak_nr > from tabela_faktury
Tak nieco offtopic. Jeśli to miało by służyć do wyznaczania następnego numeru faktury, to by było jedno z głupszych rozwiązań. :) IMHO lepiej zrobić osobną tabelkę z ostatnim numerem faktury danego typu, w danym roku ew. miesiącu. Wtedy numer faktury jest nadawany przy jej zapisie przez funkcję, która wtedy blokuje tylko jeden rekord w tabeli, zamiast całej tabeli faktur (faktur danego typu). Dodatkowo warto przewidzieć jakiś dodatkowy identyfikator czy inne powiązanie z firmą - "właścicielem systemu". Bo można się naciąć na sytuację, gdy firma zostaje kupiona przez inną i trzeba zmienić dane firmy... i uruchomić "od zaraz" nową numerację faktur od 1. -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] Wyszukanie =?ISO-8859-2?Q?rekord=F3w=28powiazane_tabel?==?ISO-8859-2?Q?e=29?=
[MySQL/PHP] Wyszukiwanie rekordu przez kolumnę wskazaną przez zmienną
=?iso-8859-2?Q?[MS_SQL]Najcz=EAsciej_wyszukiwane_frazy?=
Re: [mysql] wyszukiwanie =?ISO-8859-2?Q?ca=B3ych_hasel?=
Oracle SQL Developer - Wyszukiwanie w calej bazie
[PostgreSQL] wyszukiwanie przy sporej ilosci danych
Wyszukiwanie "do daty" w zakresie dat i ID
[MySQL] Dostaję podwójny wynik wyszukiwania. Co jest ?
wyszukiwanie pełnotekstowe full-text - problemy
Zapytanie SQL, wyszukiwanie strony tablicy
zanotowane.pldoc.pisz.plpdf.pisz.planette.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|