我有2个临时表,我用数字值填充:
CREATE TABLE #Initial
(
[SalesTax] NUMERIC (20,4),
[Unit] VARCHAR(10)
);
INSERT INTO #Initial ([SalesTax],[Unit])
(
SELECT SUM(SalesTax), Unit
FROM Billing
GROUP BY Unit
);
CREATE TABLE #End
(
[SalesTax] NUMERIC (20,4),
[Unit] VARCHAR(10)
);
INSERT INTO #End([SalesTax],[Unit])
(
SELECT SUM(SalesTax), Unit
FROM BillingEnd
GROUP BY Unit
);
Run Code Online (Sandbox Code Playgroud)
然后,当我在另一个查询中选择它们时,我试图将这些值一起添加(此查询是一个非常简单的更大查询示例.必须像这样完成):
SELECT
u.Unit,
i.SalesTax,
e.SalesTax,
(i.SalesTax+ e.SalesTax) AS SalesTaxFeeTotal
FROM tblUnit u
LEFT JOIN #Initial i ON u.Unit = i.Unit
LEFT JOIN #End e ON u.Unit = e.Unit
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当i.SalesTax和e.SalesTax列返回这些相同记录的值时,SalesTax列将返回NULL.
任一临时表中都没有NULL值.如果没有费用,则为0.00
为什么这些重新调整的空值?
改变这个
(i.StateFee + e.StateFee) AS StateFeeTotal
Run Code Online (Sandbox Code Playgroud)
至
(ISNULL(i.StateFee,0) + ISNULL(e.StateFee,0)) AS StateFeeTotal
Run Code Online (Sandbox Code Playgroud)
或者使用正确的列名称
(ISNULL(i.StateFeeBegin,0) + ISNULL(e.StateFeeEnd,0)) AS StateFeeTotal
Run Code Online (Sandbox Code Playgroud)
使用LEFT JOIN,您可以获取值的NULL.添加到其他任何内容的NULL将始终为NULL.这个答案使用ISNULL来替换NULL值.
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |