Article View: pl.comp.lang.delphi.bazy-danych
Article #332Re: Nie rozumiem takiego UPDATE'u
From: Mundek
Date: Mon, 19 Apr 1999 07:18
Date: Mon, 19 Apr 1999 07:18
45 lines
2212 bytes
2212 bytes
On Sun, 18 Apr 1999, Mariusz Karpowicz wrote: > Witam > Oto moje zmartwienie (nie az takie wielkie ale jednak..): > > Trzy realne tabele: > 1) ABONAMENT (pola NRKOMORKI,OPLATA) > 2) ROZMOWY (pola NRKOMORKI,OPLATA) > 3) SUMA (pola NRKOMORKI, OPLATA) > > Tabele ABONAMENT i ROZMOWY sa wypelnione 'w calosci' zas tabela SUMA > zawiera tylko numery komorek. > > Wykonuje dwa zapytania: > 1) update SUMA set OPLATA=(select sum(OPLATA) from ABONAMENT where > SUMA.NRKOMORKI=ABONAMENT.NRKOMORKI) > > tutaj jest jeszcze wszystko w porzadku, tabela SUMA update'uje sie > poprawnie > > 2) update SUMA set OPLATA=OPLATA+(select sum(OPLATA) from ROZMOWY where > SUMA.NRKOMORKI=ROZMOWY.NRKOMORKI) Witam. Dzieje sie tak z prostej przyczyny. Jesli jakakolwiek czesc wyrazenia arytmetycznego ma wartosc NULL, to wtedy cale wyrazenie przyjmuje null. UPDATE SUMA set OPLATA=OPLATA+ISNULL((select sum(OPLATA) from ROZMOWY where SUMA.NRKOMORKI=ROZMOWY.NRKOMORKI),0) Funkcja ISNULL istnieje na MS-SQLServerze, ale w zasadzie na kazdym istnieje chyba podobna funkcja Pozdrawiam Mundek > > no i tutaj dzieje sie wlasnie to 'cos' : > jesli w tabeli ROZMOWY nie bylo ani jednej rozmowy prowadzonej z ktorejs > komorki to w tabeli SUMA dla tego rekordu jest wartosc NULL mimo iz po > pierwszym update'cie byla tam jakas kwota (przypadek gdy jest abonament > a nie ma rozmow) > > Pewnie cos zle zrobilem, moze ktos mi wskaze swiatlo w tunelu ? > > ps. sorry za taki zywcem wyrwany przyklad ale chyba tak jest bardziej > pogladowo ... >
Technical Details
Message-ID:
<Pine.OSF.4.10.9904190908180.6712-100000@TRIMED.uhc.lublin.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!ict.pwr.wroc.pl!lublin.pl!trimed.uhc.lublin.pl!mirekgReferences:
<371A3DB6.7286915C@kki.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!ict.pwr.wroc.pl!lublin.pl!trimed.uhc.lublin.pl!mirekg From: Mundek <mirekg@uhc.lublin.pl> Newsgroups: pl.comp.bazy-danych,pl.comp.lang.delphi.bazy-danych Subject: Re: Nie rozumiem takiego UPDATE'u Date: Mon, 19 Apr 1999 09:18:37 +0200 Lines: 47 Message-ID: <Pine.OSF.4.10.9904190908180.6712-100000@TRIMED.uhc.lublin.pl> References: <371A3DB6.7286915C@kki.net.pl> NNTP-Posting-Host: trimed.uhc.lublin.pl Mime-Version: 1.0 To: M.Karpowicz@gazeta.pl In-Reply-To: <371A3DB6.7286915C@kki.net.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit