2017-10-12 48 views
0

进出口运行一个查询按照下面的: -的SQLQuery - 在跨越两个表的语句返回0结果

unack_query = """ 
    SELECT aa.AlertObjectID, 
    aa.TriggeredMessage, 
    aa.Acknowledged, 
    aa.AcknowledgedBy, 
    aa.TriggeredDateTime, 
    ao.EntityType, 
    ao.EntityCaption, 
    node.Caption, 
    node.CustomProperties.DeviceOwner 
    FROM Orion.AlertActive aa 
    INNER JOIN Orion.AlertObjects ao 
     ON aa.AlertObjectID = ao.AlertObjectID 
     LEFT JOIN Orion.Nodes node 
      ON ao.RelatedNodeId = NodeID 
    WHERE node.CustomProperties.DeviceOwner = 'Network Team' AND aa.Acknowledged = False 
    ORDER BY aa.TriggeredDateTime DESC 
    """ 

该查询返回结果为零。但是,当我从查询中删除“AND aa.Acknowledged = False”时,它就起作用了。我还可以在结果中看到已确认字段是布尔值。任何人都可以向正确的方向指出我为什么会失败?

感谢

回答

1

尝试检查,如果AND aa.Acknowledged = TRUE工作时,你有没有条件的。(可能是你有没有假值)

或可能是你有“假”作为一个字符串

WHERE node.CustomProperties.DeviceOwner = 'Network Team' AND aa.Acknowledged = 'False' 

或者您有没有价值,所以你也应该检查

WHERE node.CustomProperties.DeviceOwner = 'Network Team' AND aa.Acknowledged is null 
+0

你りght,我得到没有设置任何东西,如果不是真,这工作WHERE node.CustomProperties.DeviceOwner ='网络团队'和aa.Acknowledged IS Null – AlexW