我似乎无法弄清楚这里的语法问题。ISNULL语法挑战
这个工作,但返回空值;
SELECT jo.Job_Operation, jo.Job, jo.Work_Center, jo.Operation_Service, jo.Est_Total_Hrs,
(SELECT SUM(jot.Act_Run_Hrs)
FROM PRODUCTION.dbo.Job_Operation_Time jot
WHERE jot.Job_Operation = jo.Job_Operation) AS Cost
FROM PRODUCTION.dbo.Job_Operation jo
WHERE jo.Job = 'A5076027'
所以我想在这里使用ISNULL,但我得到一个错误:
SELECT jo.Job_Operation, jo.Job, jo.Work_Center, jo.Operation_Service, jo.Est_Total_Hrs,
(ISNULL(SELECT SUM(jot.Act_Run_Hrs)
FROM PRODUCTION.dbo.Job_Operation_Time jot
WHERE jot.Job_Operation = jo.Job_Operation,0)) AS Cost
FROM PRODUCTION.dbo.Job_Operation jo
WHERE jo.Job = 'A5076027'
的错误是: 消息156,级别15,状态1,2号线 附近有语法错误的关键字'SELECT'。 Msg 102,Level 15,State 1,Line 4 ','附近的语法不正确。
任何人都可以看到我在这里失踪?
谢谢!
不要做更清晰联接子查询中选择,如果你能避免它。在你的情况下,转换你的查询使用常规连接,然后使用'ISNULL'。 –
你已经有了'ISNULL'的第二个参数嵌套在括号内的一个深层; @Adam Silenko的答案应该可以工作 – WillardSolutions
在这里使用相关的子查询是好的(尽管有些会使用'apply'来代替)。 –