在预期条件的上下文中指定的非布尔类型的表达式,靠近 IDT 中的“)”错误
Posted
技术标签:
【中文标题】在预期条件的上下文中指定的非布尔类型的表达式,靠近 IDT 中的“)”错误【英文标题】:An expression of non-boolean type specified in a context where a condition is expected, near ')' error in IDT 【发布时间】:2017-08-01 09:32:41 【问题描述】:在运行以下代码时,我收到错误提示
在预期条件的上下文中指定的非布尔类型表达式,靠近 ')'。
SELECT
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.LNG_CODE,
OVUTCMN.TNT_DIM.TNT_KEY,
OVUTCMN.TNT_DIM.TNT_CODE,
OVUTCMN.DATE_DIM.YY_NBR,
OVUTCMN.DATE_DIM.QTR_NBR,
'Q'+ CAST(OVUTCMN.DATE_DIM.QTR_NBR AS VARCHAR(10)) AS QTR_DESC,
OVUTCMN.DATE_DIM_TXT.MM_NBR,
OVUTCMN.DATE_DIM_TXT.MM_SHORT_DESC,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_ZONE_CODE,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_ZONE_NAME,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_SUBDVSN_CODE,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_SUBDVSN_NAME,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_UNIT_CODE,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_UNIT_NAME,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FALRE_CTGRY_CODE,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FALRE_CTGRY_DESC,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.STD_FALRE_TYPE_DESC,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FR_CODE,
OVUTOI.OTG_STP_UE_F.INCDT_KEY,
OVUTOI.OTG_STP_UE_F.SRC_TYPE
FROM
OVUTCMN.FALRE_TYPE_UE_DIM_TXT INNER JOIN OVUTCMN.FALRE_TYPE_UE_DIM ON (OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FALRE_TYPE_KEY=OVUTCMN.FALRE_TYPE_UE_DIM.FALRE_TYPE_KEY)
INNER JOIN OVUTOI.OTG_STP_UE_F ON (OVUTCMN.FALRE_TYPE_UE_DIM.FALRE_TYPE_KEY=OVUTOI.OTG_STP_UE_F.OUTAGE_KEY)
INNER JOIN OVUTCMN.TNT_DIM ON (OVUTOI.OTG_STP_UE_F.TNT_KEY=OVUTCMN.TNT_DIM.TNT_KEY)
INNER JOIN OVUTCMN.FNCNL_LCTN_UE_DIM_TXT ON (OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.FNCNL_LCTN_KEY=OVUTOI.OTG_STP_UE_F.FNCNL_LCTN_KEY AND OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.LNG_CODE = 'en_US')
INNER JOIN OVUTCMN.DATE_DIM ON (OVUTCMN.DATE_DIM.DATE_KEY=OVUTOI.OTG_STP_UE_F.PWR_RSTR_START_DATE_KEY)
INNER JOIN OVUTCMN.DATE_DIM_TXT ON (OVUTCMN.DATE_DIM.DATE_KEY=OVUTCMN.DATE_DIM_TXT.DATE_KEY AND OVUTCMN.DATE_DIM_TXT.DATE_KEY)
WHERE
(OVUTCMN.FALRE_TYPE_UE_DIM_TXT.LNG_CODE='en_US' AND OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FALRE_CTGRY_CODE<>9
AND OVUTCMN.DATE_DIM.YY_NBR BETWEEN DATEPART(YYYY,DATEADD(YYYY,-2,GETDATE())) and DATEPART(YYYY,GETDATE()) )
GROUP BY
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.LNG_CODE,
OVUTCMN.TNT_DIM.TNT_KEY,
OVUTCMN.TNT_DIM.TNT_CODE,
OVUTCMN.DATE_DIM.YY_NBR,
OVUTCMN.DATE_DIM.QTR_NBR,
OVUTCMN.DATE_DIM_TXT.MM_NBR,
OVUTCMN.DATE_DIM_TXT.MM_SHORT_DESC,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_ZONE_CODE,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_ZONE_NAME,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_SUBDVSN_CODE,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_SUBDVSN_NAME,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_UNIT_CODE,
OVUTCMN.FNCNL_LCTN_UE_DIM_TXT.STD_UNIT_NAME,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FALRE_CTGRY_CODE,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FALRE_CTGRY_DESC,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.STD_FALRE_TYPE_DESC,
OVUTCMN.FALRE_TYPE_UE_DIM_TXT.FR_CODE,
OVUTOI.OTG_STP_UE_F.INCDT_KEY,
OVUTOI.OTG_STP_UE_F.SRC_TYPE
HAVING max(coalesce(B.SRC_PWR_RSTR_DURTN,0))>=0
【问题讨论】:
我已经根据查询的语法和错误消息添加了 SQL Server 标记。在您以后的问题中,请包括相关的 rdbms 标签以及具体的版本标签。 【参考方案1】:问题出在你的最后一个ON
子句中:
INNER JOIN OVUTCMN.DATE_DIM_TXT ON
(
OVUTCMN.DATE_DIM.DATE_KEY = OVUTCMN.DATE_DIM_TXT.DATE_KEY
AND OVUTCMN.DATE_DIM_TXT.DATE_KEY
)
【讨论】:
Glad to help :-)以上是关于在预期条件的上下文中指定的非布尔类型的表达式,靠近 IDT 中的“)”错误的主要内容,如果未能解决你的问题,请参考以下文章
SQL MERGE:在预期条件的上下文中指定的非布尔类型的表达式,靠近“,”
SQL Server - 在“返回”附近的预期条件的上下文中指定的非布尔类型的表达式
未经处理的异常在 System.Data.dll 中发生。其它信息:在应使用条件的上下文(在 '***' 附近)中指定了非布尔类型的表达式。