ďťż
 
MSSQL Inkrementacja ďťż
 
MSSQL Inkrementacja
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

MSSQL Inkrementacja



Wlodzimierz - 02-07-2007 00:00
MSSQL Inkrementacja
  Witam,

czy wie ktoś jak na sql server 2005 zaimplementować takie rozwiązanie:
Załóżmy że mamy dwie tabele. Źródłowa i docelowa. W źródłowej znajdują się
rekordy z datami. Insertem wrzucamy co jakiś czas porcję rekordów z tabeli
źródłowej do docelowej posortowane wg. daty.
Tabela docelowa ma dodatkowe pole (załóżmy że nazywa się Lp., typu
smallint). Podczas wstawiania rekordów do docelowej tabelki, pole to ma się
inkrementować o 1, jednak w momencie gdy do tabeli zostanie wstawiony rekord
z nową wartością roku (np leciały rekordy z rokiem 2006, zaczynają pojawiać
się z roiem 2007), wówczas Lp. znów zaczyna się inkrementować od jedynki. I
tak za każdym kolejnym rokiem. Macie jakiś pomysł jak to zaimplementować? Z
góry dzięki za wszelkie porady.





Grzegorz Danowski - 03-07-2007 00:04

  "Wlodzimierz" <nie@ma.com> wrote in message
news:f68onf$lci$1@news.task.gda.pl...
> Tabela docelowa ma dodatkowe pole (załóżmy że nazywa się Lp., typu
> smallint). Podczas wstawiania rekordów do docelowej tabelki, pole to ma
> się inkrementować o 1, jednak w momencie gdy do tabeli zostanie wstawiony
> rekord z nową wartością roku (np leciały rekordy z rokiem 2006, zaczynają
> pojawiać się z roiem 2007), wówczas Lp. znów zaczyna się inkrementować od
> jedynki. I tak za każdym kolejnym rokiem. Macie jakiś pomysł jak to
> zaimplementować? Z góry dzięki za wszelkie porady.

Ja bym użył triggera typu Instead Of uruchamianego przed insertem.
http://www.google.pl/search?hl=pl&q=...+server%22&lr=
Jeśli rekordów w tabeli jest dużo, to dodałbym dodatkową tabelę zawierającą
aktualną wartość numeru (rok i numer), co przyspieszyłoby pracę.
--
Pozdrawiam
Grzegorz




=?ISO-8859-2?Q?Tomasz_=A3ukaszyk?= - 03-07-2007 00:04

  Wlodzimierz napisał(a):
> Witam,
>
> czy wie ktoś jak na sql server 2005 zaimplementować takie rozwiązanie:
> Załóżmy że mamy dwie tabele. Źródłowa i docelowa. W źródłowej znajdują się
> rekordy z datami. Insertem wrzucamy co jakiś czas porcję rekordów z tabeli
> źródłowej do docelowej posortowane wg. daty.
> Tabela docelowa ma dodatkowe pole (załóżmy że nazywa się Lp., typu
> smallint). Podczas wstawiania rekordów do docelowej tabelki, pole to ma się
> inkrementować o 1, jednak w momencie gdy do tabeli zostanie wstawiony rekord
> z nową wartością roku (np leciały rekordy z rokiem 2006, zaczynają pojawiać
> się z roiem 2007), wówczas Lp. znów zaczyna się inkrementować od jedynki. I
> tak za każdym kolejnym rokiem. Macie jakiś pomysł jak to zaimplementować? Z
> góry dzięki za wszelkie porady.
>
>
CREATE TABLE #r2006
(
nr numeric identity not null,
data datetime null)

CREATE TABLE #r2007
(
nr numeric identity not null,
data datetime null)

A potem już tylko inserty.




brejk - 14-07-2007 00:02

  On 1 Lip, 19:36, "Wlodzimierz" <n...@ma.com> wrote:
> Witam,
>
> czy wie ktoś jak na sql server 2005 zaimplementować takie rozwiązanie:
> Załóżmy że mamy dwie tabele. Źródłowa i docelowa. W źródłowej znajdują się
> rekordy z datami. Insertem wrzucamy co jakiś czas porcję rekordów ztabeli
> źródłowej do docelowej posortowane wg. daty.
> Tabela docelowa ma dodatkowe pole (załóżmy że nazywa się Lp., typu
> smallint). Podczas wstawiania rekordów do docelowej tabelki, pole to masię
> inkrementować o 1, jednak w momencie gdy do tabeli zostanie wstawiony rekord
> z nową wartością roku (np leciały rekordy z rokiem 2006, zaczynają pojawiać
> się z roiem 2007), wówczas Lp. znów zaczyna się inkrementować od jedynki. I
> tak za każdym kolejnym rokiem. Macie jakiś pomysł jak to zaimplementować? Z
> góry dzięki za wszelkie porady.

INSERT INTO dbo.TabelaDocelowa(..., Lp)
SELECT ..., ROW_NUMBER() OVER (PARTITION BY YEAR(Data) ORDER BY Data)
FROM dbo.TabelaZrodlowa

Pozdrawiam
Paweł Potasiński





brejk - 14-07-2007 00:02

  On 1 Lip, 19:36, "Wlodzimierz" <n...@ma.com> wrote:
> Witam,
>
> czy wie ktoś jak na sql server 2005 zaimplementować takie rozwiązanie:
> Załóżmy że mamy dwie tabele. Źródłowa i docelowa. W źródłowej znajdują się
> rekordy z datami. Insertem wrzucamy co jakiś czas porcję rekordów ztabeli
> źródłowej do docelowej posortowane wg. daty.
> Tabela docelowa ma dodatkowe pole (załóżmy że nazywa się Lp., typu
> smallint). Podczas wstawiania rekordów do docelowej tabelki, pole to masię
> inkrementować o 1, jednak w momencie gdy do tabeli zostanie wstawiony rekord
> z nową wartością roku (np leciały rekordy z rokiem 2006, zaczynają pojawiać
> się z roiem 2007), wówczas Lp. znów zaczyna się inkrementować od jedynki. I
> tak za każdym kolejnym rokiem. Macie jakiś pomysł jak to zaimplementować? Z
> góry dzięki za wszelkie porady.

INSERT INTO dbo.TabelaDocelowa(..., Lp)
SELECT ..., ROW_NUMBER() OVER (PARTITION BY YEAR(Data) ORDER BY Data)
FROM dbo.TabelaZrodlowa

Pozdrawiam
Paweł Potasiński
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= [MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?= MSSQL Express czy Oracle Express MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?= [MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?= Pobierananie danych z innej bazy danych w MSSQL Migracja MSSQL 2005 CTP na 2005 Express
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • melooonka.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com