2017-10-12 92 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