我正在尝试比较两个单独表中的数据,如果两个表中的数据不匹配,则返回“Mismatch”代码。我的问题是在SO_SalesOrderHistoryHeader
表中SalesPersonNo
为0,DailySales_BB.dbo.Exceptions
表中的匹配响应为DestinationTerritory
,即50。我的逻辑是说if { {1}}等于0然后返回50以匹配SalesPersonNo
。当我使用此逻辑时(请参阅下面的代码),报告将生成所有NULLS。
这似乎是简单的逻辑,但它让我难过?任何帮助将不胜感激!
代码:
DestinationTerritory
答案 0 :(得分:0)
您的案例逻辑没有任何问题。试试这个:
SELECT
SOH.SalesOrderNo ,
'Territory Mismatch - Exception' AS [ReasonForError]
FROM
ASHEVMSAGE100.MAS_PHE.dbo.SO_SalesOrderHistoryHeader SOH,
ASHEVMSQL.DailySales_BB.dbo.Exceptions EX
WHERE
CASE
WHEN CAST(SOH.SalespersonNo AS INT) = 0
THEN 50
ELSE CAST(SOH.SalespersonNo AS INT)
END <>
CASE WHEN (...multiple cases...) --make sure all cases result in an INT
THEN CAST(EX.DestinationTerritory AS INT)