Unique index problem
Robert - 15-07-2006 01:26
Unique index problem
Witam serdecznie
mam taki problem chciałem zrobić index sprawdzający nr faktury
Wiadomo że w bazie nie może być faktur o tym samym nr na w tej samej firmie dlatego
CREATE UNIQUE INDEX [spr_nr_fak] ON [dbo].[zobowiazanie]([nr_fak], [id_firmy]) ON [PRIMARY] GO
wszystko ładnie działa ale pojawił sie problem mianowicie jeżeli nr faktury ma format np 12/07 12-faktura w 07-lipiec to w przyszłym roku nie wstawie takiej drugiej faktury na tą samą firmę muszę dodać do tego jeszcze rok. w tabelce zobowiązania mam jeszcze kolumnę data_sprzedaży więc zaczołem modyfikować index ale nie idzie
niestety data jest w formacie yyyy-mm-dd hh-mm-ss dlataego użyłem datename
CREATE UNIQUE INDEX [spr_nr_fak] ON [dbo].[zobowiazanie]([nr_fak], [id_firmy],datename (yyyy,data_sprzedazy])) ) ON [PRIMARY]
Proszę o pomoc
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Lemat - 15-07-2006 01:26
Robert napisał(a): > Witam serdecznie > > mam taki problem > chciałem zrobić index sprawdzający nr faktury > > Wiadomo że w bazie nie może być faktur o tym samym nr na w tej samej firmie dlatego > > CREATE UNIQUE INDEX [spr_nr_fak] ON [dbo].[zobowiazanie]([nr_fak], [id_firmy]) > ON [PRIMARY] > GO > > > wszystko ładnie działa ale pojawił sie problem mianowicie jeżeli nr faktury ma > format np 12/07 12-faktura w 07-lipiec to w przyszłym roku nie wstawie takiej > drugiej faktury na tą samą firmę muszę dodać do tego jeszcze rok. w tabelce > zobowiązania mam jeszcze kolumnę data_sprzedaży więc zaczołem modyfikować index > ale nie idzie > > niestety data jest w formacie yyyy-mm-dd hh-mm-ss dlataego użyłem datename > > CREATE UNIQUE INDEX [spr_nr_fak] ON [dbo].[zobowiazanie]([nr_fak], > [id_firmy],datename (yyyy,data_sprzedazy])) ) ON [PRIMARY] > najprościej będzie chyba utworzyć osobną kolumnę w tabeli zawierającą potrzebne dane
-- Pozdrawiam Lemat pomóż zwalczyć spam z ICIC: http://www.lemat.priv.pl/index.php?m=page&pg_id=106
robert4720@vp.pl - 15-07-2006 01:26
> Robert napisał(a): > > Witam serdecznie > > > > mam taki problem > > chciałem zrobić index sprawdzający nr faktury > > > > Wiadomo że w bazie nie może być faktur o tym samym nr na w tej samej firmie dlatego > > > > CREATE UNIQUE INDEX [spr_nr_fak] ON [dbo].[zobowiazanie]([nr_fak], [id_firmy]) > > ON [PRIMARY] > > GO > > > > > > wszystko ładnie działa ale pojawił sie problem mianowicie jeżeli nr faktury ma > > format np 12/07 12-faktura w 07-lipiec to w przyszłym roku nie wstawie takiej > > drugiej faktury na tą samą firmę muszę dodać do tego jeszcze rok. w tabelce > > zobowiązania mam jeszcze kolumnę data_sprzedaży więc zaczołem modyfikować index > > ale nie idzie > > > > niestety data jest w formacie yyyy-mm-dd hh-mm-ss dlataego użyłem datename > > > > CREATE UNIQUE INDEX [spr_nr_fak] ON [dbo].[zobowiazanie]([nr_fak], > > [id_firmy],datename (yyyy,data_sprzedazy])) ) ON [PRIMARY] > > > najprościej będzie chyba utworzyć osobną kolumnę w tabeli zawierającą > potrzebne dane > > --
wydaje sie dobrym rozwiązaniem. Ale czy nie ma innego nie da sie użyć jakiejś funkcji czy czegoś by z tej daty wyciągnąć sam rok i użyć go przy kreowaniu indeksu.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?iso-8859-2?Q?Andrzej_Str=F3=BFy=F1ski?= - 15-07-2006 01:26
Użytkownik <robert4720@vp.pl> napisał: [...] > wydaje sie dobrym rozwiązaniem. Ale czy nie ma innego nie da sie użyć > jakiejś > funkcji czy czegoś by z tej daty wyciągnąć sam rok i użyć go przy > kreowaniu > indeksu.
W pgsql można np tak: SELECT date_part( 'year', data_sprzedazy ) FROM ...
pozdrawiam A.S.
robert4720@vp.pl - 15-07-2006 01:26
> > Użytkownik <robert4720@vp.pl> napisał: > [...] > > wydaje sie dobrym rozwiązaniem. Ale czy nie ma innego nie da sie użyć > > jakiejś > > funkcji czy czegoś by z tej daty wyciągnąć sam rok i użyć go przy > > kreowaniu > > indeksu. > > W pgsql można np tak: > SELECT date_part( 'year', data_sprzedazy ) FROM ... > > pozdrawiam > A.S. >
w mssql to nie działa niestety
pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?iso-8859-2?Q?Andrzej_Str=F3=BFy=F1ski?= - 15-07-2006 01:26
Użytkownik <robert4720@vp.pl> napisał: >> >> Użytkownik <robert4720@vp.pl> napisał: >> [...] >> > wydaje sie dobrym rozwiązaniem. Ale czy nie ma innego nie da sie użyć >> > jakiejś >> > funkcji czy czegoś by z tej daty wyciągnąć sam rok i użyć go przy >> > kreowaniu >> > indeksu. >> >> W pgsql można np tak: >> SELECT date_part( 'year', data_sprzedazy ) FROM ... > > w mssql to nie działa > niestety
Właśnie dlatego mądrzy ludzie wymyślili, że należy podawać rodzaj bazy w tytule wątku.
A.S.
Grzesiek G. - 15-07-2006 01:26
robert4720@vp.pl napisał(a): >>Użytkownik <robert4720@vp.pl> napisał: >>[...] >> >>>wydaje sie dobrym rozwiązaniem. Ale czy nie ma innego nie da sie użyć >>>jakiejś >>>funkcji czy czegoś by z tej daty wyciągnąć sam rok i użyć go przy >>>kreowaniu >>>indeksu. >> >>W pgsql można np tak: >>SELECT date_part( 'year', data_sprzedazy ) FROM ... >> >>pozdrawiam >>A.S. >> > > > w mssql to nie działa > niestety
Działa. Tworzysz kolumnę wyliczaną (YEAR(data_faktury)) i robisz indeks na tej kolumnie.
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
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.pllubiatowo.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 |
|