🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195239

[MSSQL] Zagnieżdżony SELECT i NULL

#195239
From: Adam
Date: Fri, 17 Feb 2017 23:28
81 lines
2882 bytes
Witajcie.

Problem chyba trywialny, ale nie mogę przeskoczyć.

Za pomocą BCP.EXE z pakietu MS SQL 2012  wołam  zapytanie SQL, którego 
wynik leci do pliku.

Utknąłem na zwracaniu NULL tam, gdzie powinno być zero.

Przygotowałem skrypcik, aby zobrazować:

===[start skrypt===================================

CREATE TABLE #tmpTowar
	(
	T_Kod nvarchar(20) NOT NULL unique,
	T_Nazwa nvarchar(50) NOT NULL,
	)

CREATE TABLE #tmpDostawa
	(
	D_NrDokum nvarchar(20) NOT NULL,
	D_Kod nvarchar(20) NOT NULL ,
	D_Ilosc int NOT NULL,
	)

	
insert into #tmpTowar  values ('M-01','marchew')
insert into #tmpTowar  values ('P-03','pietruszka')
insert into #tmpTowar  values ('S-02','seler')
insert into #tmpTowar  values ('R-01','rzodkiew')
insert into #tmpTowar  values ('K-77','kapusta')

insert into #tmpDostawa  values ('F12/17','S-02', 32)
insert into #tmpDostawa  values ('F33/17','S-02', 10)
insert into #tmpDostawa  values ('FV134/2017','P-03', 12)
insert into #tmpDostawa  values ('FZ45/R','D-07', 30)
insert into #tmpDostawa  values ('1332/B','R-01', 20)
insert into #tmpDostawa  values ('FSD4433/R17','R-01', 100)
insert into #tmpDostawa  values ('FD433/017','Z-33', 200)

select * from #tmpTowar	
select * from #tmpDostawa


/*	
PYTANIE: jak w poniższym zapytaniu uzyskać wyświetlanie	0 (zero) zamiast 
NULL dla towarów,
które nie mają dostaw?
*/
	
select T_Kod, T_Nazwa, 	
	(select SUM(D_Ilosc) from #tmpDostawa where D_Kod = T_Kod)
	from #tmpTowar
		
		
drop table #tmpTowar
drop table #tmpDostawa

===[stop skrypt====================================

Oczywiście mój prawdziwy skrypt jest wielokrotnie większy, ale to bez 
znaczenia.

Chodzi o środkowy select SUM().
Aktualnie dla towarów bez stanu magazynowego jest zwracany NULL, 
potrzebuję zero.

Próbowałem go "ubrać" w ISNULL(SELECT, 0)
próbowałem zamknąć w IF
i może jeszcze jakiś CAST czy IFEXIST...ELSE
no i nie udało mi się uzyskać zera zamiast null.


Jak to zrobić?


-- 
Pozdrawiam.

Adam
Technical Details
Message-ID: <o880vb$r5l$1@usenet.news.interia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.interia.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.interia.pl!not-for-mail
From: Adam <a.g@poczta.onet.pl>
Newsgroups: pl.comp.bazy-danych
Subject: [MSSQL] Zagnieżdżony SELECT i NULL
Date: Sat, 18 Feb 2017 00:28:45 +0100
Organization: INTERIA.PL S.A.
Lines: 81
Message-ID: <o880vb$r5l$1@usenet.news.interia.pl>
NNTP-Posting-Host: ent22.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: usenet.news.interia.pl 1487374123 27829 83.15.205.22 (17 Feb 2017 23:28:43 GMT)
X-Complaints-To: usenet@firma.interia.pl
NNTP-Posting-Date: Fri, 17 Feb 2017 23:28:43 +0000 (UTC)
X-Mozilla-News-Host: news://news.interia.pl:119
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit