ďťż
 
problem z triggerem ďťż
 
problem z triggerem
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

problem z triggerem



robert - 01-12-2005 20:33
problem z triggerem
  Witam serdecznie

potrzebuje pomocy

mam w bazie ms sql server przykładowo dwie tabele
pierwsza o nazwie faktura z (np. id_faktury i kwota_faktury)
druga o nazwie spłata z (np id_splaty, id_faktury i kwota splaty)

potrzebuje zabezpieczyć tabele spłata w taki sposób by suma spłat wybranej (po
id_faktuy) faktury nie mogła być większa od faktury

chyba musi to być trigger sprawdzający poprawność przed wprowadzeniem danych
do tabeli.
mam jeszcze stworzony widok view suma_splat (np id_faktury , sum
(kwota_splaty))

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Andrzej Kałuża - 01-12-2005 20:33

  Witam,

Do tabeli faktur dodajemy pole z sumą spłat i zakładamy ograniczenie (check
(suma_splat <= suma_faktury))
Na tabeli spłat dodajemy trigger insert, update, delete który zaktualizuje
odpowiednio tabelę faktur i juś ;o)

Andrzej Kałuża

Użytkownik "robert" <robert4720@vp.pl> napisał w wiadomości
news:41ef.00000235.438cc3ce@newsgate.onet.pl...
> Witam serdecznie
>
> potrzebuje pomocy
>
>
> mam w bazie ms sql server przykładowo dwie tabele
> pierwsza o nazwie faktura z (np. id_faktury i kwota_faktury)
> druga o nazwie spłata z (np id_splaty, id_faktury i kwota splaty)
>
> potrzebuje zabezpieczyć tabele spłata w taki sposób by suma spłat wybranej
> (po
> id_faktuy) faktury nie mogła być większa od faktury
>
> chyba musi to być trigger sprawdzający poprawność przed wprowadzeniem
> danych
> do tabeli.
> mam jeszcze stworzony widok view suma_splat (np id_faktury , sum
> (kwota_splaty))
>
> --
> Wysłano z serwisu OnetNiusy: http://niusy.onet.pl




robert4720@vp.pl - 02-12-2005 11:41

  > Witam,
>
> Do tabeli faktur dodajemy pole z sumą spłat i zakładamy ograniczenie (check
> (suma_splat <= suma_faktury))
> Na tabeli spłat dodajemy trigger insert, update, delete który zaktualizuje
> odpowiednio tabelę faktur i juś ;o)
>
> Andrzej Kałuża
>
> Użytkownik "robert" <robert4720@vp.pl> napisał w wiadomości
> news:41ef.00000235.438cc3ce@newsgate.onet.pl...
> > Witam serdecznie
> >
> > potrzebuje pomocy
> >
> >
> > mam w bazie ms sql server przykładowo dwie tabele
> > pierwsza o nazwie faktura z (np. id_faktury i kwota_faktury)
> > druga o nazwie spłata z (np id_splaty, id_faktury i kwota splaty)
> >
> > potrzebuje zabezpieczyć tabele spłata w taki sposób by suma spłat wybranej
> > (po
> > id_faktuy) faktury nie mogła być większa od faktury
> >
> > chyba musi to być trigger sprawdzający poprawność przed wprowadzeniem
> > danych
> > do tabeli.
> > mam jeszcze stworzony widok view suma_splat (np id_faktury , sum
> > (kwota_splaty))
> >
> > --
> > Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
>
>

dzięki bardzo za odpowiedz

ale coś i tak robię źle

więc zacznę od początku podam cody tabelek i triggera może ktoś sprawdzi co
jest nie tak :

create table zobowiazanie (
id_zobowiazania int primary key not null identity(1,1),
nr_fak varchar (30)not null,
kwota_netto money not null, check( kwota_netto >0 ),
kwota_brutto money not null, check( kwota_netto >0 ),
kwota_kaucji money not null,
kwota_do_wyplaty money not null, check (kwota_do_wyplaty = (kwota_brutto -
kwota_kaucji)),
suma_splat money , check (suma_splat <= kwota_do_wyplaty)
)

Create table splata (
id_splaty int primary key not null identity (1,1),
id_zobowiazania int Foreign Key references zobowiazanie(id_zobowiazania)not
null,
Data_splaty datetime not null,
kwota_splaty_brutto money not null,
)

create view sum_splat
as(select id_zobowiazania, sum (kwota_splaty_brutto)as 'kwota_splaty_brutto'
from splata
group by id_zobowiazania
)

create trigger dodaj_sum_splat on splata
for insert,update,delete
as
begin
UPDATE zobowiazanie
SET suma_splat = sum_splat.kwota_splaty_brutto+ kwota_splaty_brutto - -
nowa wartość
FROM sum_splat
where sum_splat.id_zobowiazania = zobowiazanie.id_zobowiazania
end

i tak w tabelce zobowiązania mam jakieś zobowiązanie ale bez ostatniej pozycji
suma_splat tam mam same zera gdy dodaje spłatę do konkretnego zobowiązania
trigger powinien zaktualizować tabelkę zobowiązania do wartości która jest już
w zobowiązanie.suma_splat powinien dodać nową wartość ale wyskakuje
komunikat ( check założony na zobowiązanie.suma_splat nie chec wpuścić żadnej
wartości.) co jest ?
widok mam zrobiony po to żeby nie sumować spłat w trigger tylko pobierać
wartość sumy od razu. Wiadomo że jakieś zobowiązanie może być spłacane kilka
razy ale suma spłat nie może przekroczyć wartości danego zobowiązania. Co
robić ?

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl




robert4720@vp.pl - 05-12-2005 19:19

  > > Witam,
> >
> > Do tabeli faktur dodajemy pole z sumą spłat i zakładamy ograniczenie
(check
> > (suma_splat <= suma_faktury))
> > Na tabeli spłat dodajemy trigger insert, update, delete który zaktualizuje
> > odpowiednio tabelę faktur i juś ;o)
> >
> > Andrzej Kałuża
> >
> > Użytkownik "robert" <robert4720@vp.pl> napisał w wiadomości
> > news:41ef.00000235.438cc3ce@newsgate.onet.pl...
> > > Witam serdecznie
> > >
> > > potrzebuje pomocy
> > >
> > >
> > > mam w bazie ms sql server przykładowo dwie tabele
> > > pierwsza o nazwie faktura z (np. id_faktury i kwota_faktury)
> > > druga o nazwie spłata z (np id_splaty, id_faktury i kwota splaty)
> > >
> > > potrzebuje zabezpieczyć tabele spłata w taki sposób by suma spłat
wybranej
> > > (po
> > > id_faktuy) faktury nie mogła być większa od faktury
> > >
> > > chyba musi to być trigger sprawdzający poprawność przed wprowadzeniem
> > > danych
> > > do tabeli.
> > > mam jeszcze stworzony widok view suma_splat (np id_faktury , sum
> > > (kwota_splaty))
> > >
> > > --
> > > Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
> >
> >
>
> dzięki bardzo za odpowiedz
>
> ale coś i tak robię źle
>
> więc zacznę od początku podam cody tabelek i *triggera może ktoś sprawdzi co
> jest nie tak :
>
> create table zobowiazanie (
> id_zobowiazania int primary key *not null *identity(1,1),
> nr_fak varchar (30)not null,
> kwota_netto money not null, check( kwota_netto >0 ),
> kwota_brutto money not null, check( kwota_netto >0 ),
> kwota_kaucji money not null,
> kwota_do_wyplaty money not null, check (kwota_do_wyplaty = (kwota_brutto -
> kwota_kaucji)),
> suma_splat money , check (suma_splat <= kwota_do_wyplaty)
> )
>
> Create table splata (
> id_splaty int primary key not null identity (1,1),
> id_zobowiazania int Foreign Key references zobowiazanie(id_zobowiazania)not
> null,
> Data_splaty datetime not null,
> kwota_splaty_brutto money not null,
> )
>
>
> create view sum_splat
> as(select id_zobowiazania, sum (kwota_splaty_brutto)as 'kwota_splaty_brutto'
> from splata
> group by id_zobowiazania
> )
>
>
>
> create trigger dodaj_sum_splat on splata
> for *insert,update,delete *
> as
> begin
> * UPDATE zobowiazanie
> * SET suma_splat = sum_splat.kwota_splaty_brutto+ kwota_splaty_brutto - -
> nowa wartość
> * FROM sum_splat
> * where sum_splat.id_zobowiazania = zobowiazanie.id_zobowiazania
> end
>
>
> i tak w tabelce zobowiązania mam jakieś zobowiązanie ale bez ostatniej
pozycji
> suma_splat tam mam same zera gdy dodaje spłatę do konkretnego zobowiązania
> trigger powinien zaktualizować tabelkę zobowiązania do wartości która jest
już
> w zobowiązanie.suma_splat *powinien dodać nową wartość *ale wyskakuje
> komunikat ( check *założony na zobowiązanie.suma_splat nie chec wpuścić
żadnej
> wartości.) co jest ?
> widok mam zrobiony po to żeby nie sumować spłat w trigger tylko pobierać
> wartość sumy od razu. Wiadomo że jakieś zobowiązanie może być spłacane kilka
> razy ale suma spłat nie może przekroczyć wartości danego zobowiązania. Co
> robić ?
>
>
> --
> Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

halo proszę o jakąś podpowiedz

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lubiatowo.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com