🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #332

Re: Nie rozumiem takiego UPDATE'u

#332
From: Mundek
Date: Mon, 19 Apr 1999 07:18
45 lines
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!mirekg
References: <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