Thread View: pl.comp.bazy-danych
3 messages
3 total messages
Started by Adam
Fri, 17 Feb 2017 23:28
[MSSQL] Zagnieżdżony SELECT i NULL
Author: 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
Re: [MSSQL] Zagnieżdżony SELECT i NULL
Author: geos
Date: Sat, 18 Feb 2017 07:54
Date: Sat, 18 Feb 2017 07:54
13 lines
1221 bytes
1221 bytes
On 18.02.2017 00:28, Adam wrote:
> select T_Kod, T_Nazwa,
> (select SUM(D_Ilosc) from #tmpDostawa where D_Kod = T_Kod)
> from #tmpTowar
coalesce:
select t_kod, t_nazwa,
(select coalesce(sum(d_ilosc),0) from #tmpdostawa where d_kod = t_kod)
from #tmpTowar
pozdrawiam,
geos
Re: [MSSQL] Zagnieżdżony SELECT i NULL
Author: Adam
Date: Sat, 18 Feb 2017 09:01
Date: Sat, 18 Feb 2017 09:01
23 lines
1336 bytes
1336 bytes
W dniu 2017-02-18 o 08:54, geos pisze: > On 18.02.2017 00:28, Adam wrote: >> select T_Kod, T_Nazwa, >> (select SUM(D_Ilosc) from #tmpDostawa where D_Kod = T_Kod) >> from #tmpTowar > > coalesce: > > select t_kod, t_nazwa, > (select coalesce(sum(d_ilosc),0) from #tmpdostawa where d_kod = t_kod) > from #tmpTowar > > pozdrawiam, > geos Dzięki :) -- Pozdrawiam. Adam
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads