Article View: pl.comp.bazy-danych
Article #195239[MSSQL] Zagnieżdżony SELECT i NULL
From: Adam
Date: Fri, 17 Feb 2017 23:28
Date: Fri, 17 Feb 2017 23:28
81 lines
2882 bytes
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-mailShow 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