problem z wyszukiwaniem nr faktury
robert - 02-12-2005 11:41
problem z wyszukiwaniem nr faktury
witam ponownie
mam problem straszny
w ms sql server mam tabelkę faktury w tabelce mam kilka faktur np o nr w takiej kolejności insert into faktury 1/01/2005
2/01/2005
1/02/2005
3/01/2005
1/01/2006
5/02/2005
i po zapytaniu o max z nr_faktury powinno pokazać 1/01/2006 a tak nie jest zwraca 5/02/2005. Zrobiłem tak że nr faktur zaczynają się od roku potem miesiąc i na końcu nr faktury i to działa ale dostałem po uszach za takie rozwiązanie od naszych pań księgowych. Bo na fakturze pierwszy musi być nr a dopiero miesiąc i rok
co zrobić
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
HM - 02-12-2005 11:41
robert wrote:
> i po zapytaniu o max z nr_faktury powinno pokazać 1/01/2006 a tak nie jest > zwraca 5/02/2005. Zrobiłem tak że nr faktur zaczynają się od roku potem > miesiąc i na końcu nr faktury i to działa ale dostałem po uszach za takie > rozwiązanie od naszych pań księgowych. Bo na fakturze pierwszy musi być nr a > dopiero miesiąc i rok > > co zrobić
A nie lepiej trzymac numer faktury rozbity na 3 kolumny (rok, miesiac, numer) ? Wtedy robilbys:
max(numer_faktury) WHERE rok=[rokbiezacy] AND miesiac=[miesiacbiezacy]
pozatym chyba masz w sql serwerze jakies funkcje do manipulacji lancuchami wiec moznaby zrobic widok ktory przestawialby numery do wymaganych przez ksiegowa
=?ISO-8859-2?Q?Adam_K=B3obukowski?= - 03-12-2005 15:50
robert napisał(a): > witam ponownie > > mam problem straszny > > w ms sql server mam tabelkę faktury w tabelce mam kilka faktur np > o nr w takiej kolejności insert into faktury > 1/01/2005 > > 2/01/2005 > > 1/02/2005 > > 3/01/2005 > > 1/01/2006 > > 5/02/2005 > > i po zapytaniu o max z nr_faktury powinno pokazać 1/01/2006 a tak nie jest > zwraca 5/02/2005. Zrobiłem tak że nr faktur zaczynają się od roku potem > miesiąc i na końcu nr faktury i to działa ale dostałem po uszach za takie > rozwiązanie od naszych pań księgowych. Bo na fakturze pierwszy musi być nr a > dopiero miesiąc i rok
Dac po uszach paniom ksiegowym bo preferowanym w polsce formatem zapisu daty jest format ISO, tzn: rrrrmmdd, np 20051202. Przepisy dotyczace faktur nic tu nie wnosza, chyba ze z jakisch innych powodow w dokumentach twojej firmy pisze sie date tak a nie inaczej.
-- Semper Fidelis
Adam Klobukowski atari@gabo.pl
Marcin Miga - 03-12-2005 15:50
robert wrote:
> witam ponownie > > mam problem straszny > > w ms sql server mam tabelkę faktury w tabelce mam kilka faktur np > o nr w takiej kolejności insert into faktury > 1/01/2005 > > 2/01/2005 > > 1/02/2005 > > 3/01/2005 > > 1/01/2006 > > 5/02/2005 > > i po zapytaniu o max z nr_faktury powinno pokazać 1/01/2006 a tak nie > jest zwraca 5/02/2005. Zrobiłem tak że nr faktur zaczynają się od > roku potem miesiąc i na końcu nr faktury i to działa ale dostałem po > uszach za takie rozwiązanie od naszych pań księgowych. Bo na fakturze > pierwszy musi być nr a dopiero miesiąc i rok > > co zrobić
<SQL> /* create table ##mm ( id int not null identity(1, 1), numer varchar(20) not null unique ) set nocount on insert into ##mm values('1/01/2005') insert into ##mm values('2/01/2005') insert into ##mm values('1/02/2005') insert into ##mm values('3/01/2005') insert into ##mm values('1/01/2006') insert into ##mm values('5/02/2005') */
SELECT * FROM ##mm ORDER BY Cast(Right(numer, 4) AS Int) DESC, Substring(numer, CharIndex('/', numer)+1, CharIndex('/', numer, CharIndex('/', numer))) DESC, Cast(Left(numer, CharIndex('/', numer)-1) AS Int) DESC </SQL>
Powyżej masz sortowanie. Bo nie doczytałem, że chodzi ci o Max. Ale z tym juz sobie chyba poradzisz...
pozdrawiaMM -- Marcin M. Miga "More matter with less art"
Piotr =?iso-8859-2?Q?Kuli=F1ski?= - 03-12-2005 15:50
Roku Pańskiego 2005, na pl.comp.bazy-danych, człowiek (??) *Adam Kłobukowski* napisał(a):
> robert napisał(a): >> witam ponownie >> >> mam problem straszny >> >> w ms sql server mam tabelkę faktury w tabelce mam kilka faktur np >> o nr w takiej kolejności insert into faktury >> 1/01/2005 >> >> 2/01/2005 >> >> 1/02/2005 >> >> 3/01/2005 >> >> 1/01/2006 >> >> 5/02/2005 >> >> i po zapytaniu o max z nr_faktury powinno pokazać 1/01/2006 a tak nie jest >> zwraca 5/02/2005. Zrobiłem tak że nr faktur zaczynają się od roku potem >> miesiąc i na końcu nr faktury i to działa ale dostałem po uszach za takie >> rozwiązanie od naszych pań księgowych. Bo na fakturze pierwszy musi być nr a >> dopiero miesiąc i rok > > Dac po uszach paniom ksiegowym bo preferowanym w polsce formatem zapisu > daty jest format ISO, tzn: rrrrmmdd, np 20051202. Przepisy dotyczace > faktur nic tu nie wnosza, chyba ze z jakisch innych powodow w > dokumentach twojej firmy pisze sie date tak a nie inaczej.
Pozatym co ma zapis w bazie do prezentacji tego zapisu w "formie czytelnej" np. raporcik. W bazie zapisuj tak aby yyyymmdd, a prezentuj w zależności od upodobań księgowych (oczywiście w granicy prawa :)) np. "2 grudnia 2005 r.", w czym jest problem ? -- pozdrawiam piotr, gg i skype w X-nagłówku posta, e-mail: zmień "wpw" na "wp" Uśmiechnij się, zawsze może być gorzej...
HM - 03-12-2005 15:50
Piotr Kuliński wrote:
> Pozatym co ma zapis w bazie do prezentacji tego zapisu w "formie czytelnej" > np. raporcik. W bazie zapisuj tak aby yyyymmdd, a prezentuj w zależności od > upodobań księgowych (oczywiście w granicy prawa :)) np. "2 grudnia 2005 > r.", w czym jest problem ?
To nie moze byc polozone w typie date bo tam jest rok, miesiac i numer faktury z danego miesiaca a nie dzień (numer faktury moze miec wyzsze wartosci niz 31)
Grzesiek G. - 03-12-2005 15:50
HM napisał(a): > Piotr Kuliński wrote: > >> Pozatym co ma zapis w bazie do prezentacji tego zapisu w "formie >> czytelnej" >> np. raporcik. W bazie zapisuj tak aby yyyymmdd, a prezentuj w >> zależności od >> upodobań księgowych (oczywiście w granicy prawa :)) np. "2 grudnia 2005 >> r.", w czym jest problem ? > > > To nie moze byc polozone w typie date bo tam jest rok, miesiac i numer > faktury z danego miesiaca a nie dzień (numer faktury moze miec wyzsze > wartosci niz 31)
Kolega uprościł trochę sprawę. Czy przypadkiem nie masz w tej tabeli daty faktury, z której jasno wynika dzień i miesiąc. Zapewne masz. Więc pozostaje zrobić drugie pole z samym numerem. A prezentacja tego numeru może być zapisana w 3 polu lub wyliczana na bieżąco (w kolumnie wyliczanej, widoku, programie klienta). Do zapytań stosujesz wtedy tylko 2 pierwsze pola.
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
Robert - 04-12-2005 15:59
Użytkownik "Adam Kłobukowski" <atari@gabo.pl> napisał w wiadomości news:dmpctk$60h$1@news.dialog.net.pl...
> Dac po uszach paniom ksiegowym bo preferowanym w polsce formatem zapisu > daty jest format ISO, tzn: rrrrmmdd, np 20051202. Przepisy dotyczace > faktur nic tu nie wnosza, chyba ze z jakisch innych powodow w dokumentach > twojej firmy pisze sie date tak a nie inaczej.
Co ma format daty do nr faktury. Zgodnie z ustawą nr faktury ma być kolejny - a więc na pierwszym miejscu a nie na ostatnim - a dopiero za nim mogą być miesiąc i rok ! Tylko po co te dane umieszczać w nr faktury (i to jeszcze w bazie !!!!), skoro obok jest zarówno data wystawienia jak i miesiąc oraz rok sprzedaży ?
A tak na marginesie to nie dość, że program pisze człowiek nie mający raczej dużego pojęcia o bazie to jeszcze był na tyle leniwy, że nie chciało mu się nawet przeanalizować pól w tej bazie. Kto rozsądny zapisuje w bazie nr dokumentu w postaci złożonej ? Brrrrr
pozdr.
robert4720@vp.pl - 05-12-2005 19:19
> > Użytkownik "Adam Kłobukowski" <atari@gabo.pl> napisał w wiadomości > news:dmpctk$60h$1@news.dialog.net.pl... > > > Dac po uszach paniom ksiegowym bo preferowanym w polsce formatem zapisu > > daty jest format ISO, tzn: rrrrmmdd, np 20051202. Przepisy dotyczace > > faktur nic tu nie wnosza, chyba ze z jakisch innych powodow w dokumentach > > twojej firmy pisze sie date tak a nie inaczej. > > > Co ma format daty do nr faktury. Zgodnie z ustawą nr faktury ma być > kolejny - a więc na pierwszym miejscu a nie na ostatnim - a dopiero za nim > mogą być miesiąc i rok ! * Tylko po co te dane umieszczać w nr faktury (i to > jeszcze w bazie !!!!), skoro obok jest zarówno data wystawienia jak i > miesiąc oraz rok sprzedaży ? > > A tak na marginesie to nie dość, że program pisze człowiek nie mający raczej > dużego pojęcia o bazie to jeszcze był na tyle leniwy, że nie chciało mu się > nawet przeanalizować pól w tej bazie. Kto rozsądny zapisuje w bazie nr > dokumentu w postaci złożonej ? Brrrrr > > pozdr. > Rozumiem, że ty jesteś alfą i omegą i wszystko wiedziałeś od razu bez nauki bez ćwiczenia.
Tylko weź pod uwagę, że na świecie są ludzie którzy się jeszcze uczą i nie są tak genialni jak ty.
a tak apropo's to po h.. jest to forum > > >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.plquentinho.opx.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 |
|