簡體   English   中英

SQL IIF Isnull和更新集= 0

[英]SQL IIF Isnull and Update set = 0

我的良好參考是如何為所有記錄將0替換為空白(null)值?

目標 :我的查詢輸出為空。 Image0我希望打印出0。

問題 :嘗試IIF Isnull ,出現提示消息框,輸入不想看到的參數值。 圖片1

PARAMETERS [BeginDate] DateTime, [EndDate] DateTime;
SELECT Sum(dbo_SO_SalesHistory.DollarsSold) AS SumOfDollarsSold, IIF(ISNULL([SumOfDollarsSold]), 0, [SumOfDollarsSold])
FROM dbo_SO_SalesHistory
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M"));

這是我的查詢在運行SQL之后的外觀: Image2

然后我嘗試了UPDATE

PARAMETERS [BeginDate] DateTime, [EndDate] DateTime;
SELECT Sum(dbo_SO_SalesHistory.DollarsSold) AS SumOfDollarsSold
UPDATE [dbo_SO_SalesHistory.DollarsSold] SET [SumOfDollarsSold] = 0
FROM dbo_SO_SalesHistory
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M")) AND [SumOfDollarsSold] IS NULL;

它給了我The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect. 錯誤消息: Image3

關於我使用的任何方法的任何建議將不勝感激。 謝謝!

PARAMETERS [BeginDate] DateTime, [EndDate] DateTime;
SELECT IIF(ISNULL(Sum(dbo_SO_SalesHistory.DollarsSold)),0,Sum(dbo_SO_SalesHistory.DollarsSold)) AS SumOfDollarsSold
FROM dbo_SO_SalesHistory
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M"))

您在執行時的查詢不知道SumOfDollarsSold列是什么。 因此,您要么必須使該subquery並測試一個值,要么可以在IIf語句中使用實際的聚合函數。

也許更好的顯示方式是FORMAT()函數,但請注意,該數字實際上是一個字符串。 我不太記得access的實現,但是可能是這樣的:

PARAMETERS [BeginDate] DateTime, [EndDate] DateTime;
SELECT FORMAT(Sum(dbo_SO_SalesHistory.DollarsSold)),0) AS SumOfDollarsSold
FROM dbo_SO_SalesHistory
WHERE (((dbo_SO_SalesHistory.InvoiceDate) Between [BeginDate] And [EndDate]) AND ((dbo_SO_SalesHistory.CustomerNo)="M"))

https://support.office.com/zh-CN/article/Format-Property-Number-and-Currency-Data-Types-ca77795e-b40d-4abb-b42f-daa0bb709620?ui=zh-CN&rs=zh-CN&ad=我們

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM