0

我正在尝试执行以下查询。

我收到相同的专栏,但连续两天。我插入的值是 day2.Value - day1.Value。

当 tab2 不包含值(day2)时,要插入的值应该只是 0 - day1.Value

当我有 tab1 的数据但没有 tab2 的数据时,不工作的部分是 -day1.Value。相反,我只是得到一个空值?

UPDATE tab2
SET Change = ISNULL(tab2.Value ,0) - ISNULL(tab1.Value ,0)
FROM Table_Name tab1
LEFT OUTER JOIN Table_Name  tab2 
    ON tab2.COBDate = '2012-5-18' 
    AND tab1.FileName = tab2.FileName 
    AND tab1.ID = tab2.ID  
    AND tab1.ScenarioID = tab2.ScenarioID
WHERE tab1.COBDate = '2012-5-17' 
    AND tab1.FileName = 'GBP.csv'
4

1 回答 1

0

尝试使用 COALESCE()?

UPDATE tab2
SET Change = COALESCE(tab2.Value ,0) - COALESCE(tab1.Value ,0)
FROM Table_Name tab1
LEFT OUTER JOIN 
Table_Name  tab2 
ON tab2.COBDate = '2012-5-18' AND 
tab1.FileName = tab2.FileName AND 
tab1.ID = tab2.ID  AND 
tab1.ScenarioID = tab2.ScenarioID
WHERE tab1.COBDate = '2012-5-17' AND tab1.FileName = 'GBP.csv'
于 2012-05-22T11:01:40.407 回答