2015-08-13 105 views
-1

我有以下問題,我正在做一個選擇與多個地方。 例如:isnull無法正常工作SQL Server

select isnull(fechamov,0) 
from movimientos 
where (provedor='1000' and depto='20') or 
     (provedor='1001' and depto='200') 

結果:

|fecha de movimiento| 
|2015-02-20| 

的問題是,在某些情況下,沒有日期,諮詢有100個不同的地方只是拋出我90日,其他10個不存在的。我想要做的是這樣的:

select isnull(fechamov,0) 
from movimientos 
where (provedor='1000' and depto='20') or 
     (provedor='1001' and depto='200') 

結果:

|Fechamovimiento| 
|0| 
|2015-02-20| 

,並嘗試ISNULL,合併,更換空的結果,與0,但沒有。 有沒有辦法解決這個問題?

+0

請閱讀[問]。然後請正確格式化您的問題。 – Amit

回答

0

你需要一個left join

with p as (
     select '1000' as prevedor, '20' as depto union all 
     select '1001', '200' 
    ) 
select coalesce(m.fechamov,0) 
from p left join 
    movimientos m 
    on m.prevedor = p.prevedor and m.depto = p.depto; 
1

試試這個

select isnull(fechamov,0) 
from movimientos 
where (provedor='1000' and depto='20') or 
     (provedor='1001' and depto='200') or fechamov is null 

這將增加它包含空值到fechamov,因爲你可能會尋找

0

的10排的休息試試這個請致電

select isnull(fechamov,0) 
from movimientos 
where (provedor='1000' and depto='20') or 
(provedor='1001' and depto='200') 
union 
select isnull(fechamov,0) 
from movimientos 
where fechamov is null