2015-09-25 32 views
0

我有一個沒有文檔的記錄(即Documents= 0)。當我執行以下查詢時,它返回零行,但它應該返回我的一行,因爲我有一個沒有文檔的記錄。SQL QUERY在文檔= 0時未提供所需的結果。

我該如何修改它,以便它將返回沒有文檔的記錄?

SELECT * FROM (SELECT ROW_NUMBER() OVER( Order By ParentID  ) AS RowNumber_ps, 

UPPER(HostApplicationLocalData.ParentID) asParentID, 

COUNT(Document.ID) as Documents from HostApplicationLocalData 

inner join Document onHostApplicationLocalData.ID=Document.HostApplicationLocalData_ID 

WHERE HostApplicationLocalData.TransactionType_ID = 1 

AND Document.Removed=0 

AND HostApplicationLocalData.Company_ID = 9000 

AND ( SharePointURI is not null or ((SharePointURI isnull and Content_ID is not null ) 

or ((HostApplicationLocalData_ID is not null andHostApplicationLocalData_ID != 0 and Content_ID isnull)))) 

group by HostApplicationLocalData.ParentID )q 

where Documents > 0 

And 

Documents = '0' 

回答

0

尋找你的代碼,它似乎最有可能的是,INNER JOIN(與過濾Document.Removed=0一起)排除任何記錄,而不在Document表中的條目,這自然意味着沒有值將出現一個COUNT(Document.ID = 0

試試這個版本的查詢,其中JOIN類型轉換爲LEFT OUTER的,並增加了允許Document.Removed過濾器通過記錄中,其中Document記錄將返回NULL的條件。

SELECT * 
FROM 
    (
    SELECT 
     ROW_NUMBER() OVER(Order By ParentID ) AS RowNumber_ps, 
     UPPER(HostApplicationLocalData.ParentID) asParentID, 
     COUNT(Document.ID) as Documents 
    FROM 
     HostApplicationLocalData 
     LEFT OUTER JOIN 
     Document ON 
      HostApplicationLocalData.ID=Document.HostApplicationLocalData_ID 
    WHERE 
      HostApplicationLocalData.TransactionType_ID = 1 
     AND (Document.Removed=0 OR Document.HostApplicationLocalData_ID IS NULL) 
     AND HostApplicationLocalData.Company_ID = 9000 
     AND 
      (SharePointURI is not null or 
       ((SharePointURI isnull and Content_ID is not null) or 
       ((HostApplicationLocalData_ID is not null andHostApplicationLocalData_ID != 0 and Content_ID isnull)) 
      ) 
      ) 
    GROUP BY HostApplicationLocalData.ParentID 
)q 
WHERE Documents = 0 
+0

感謝您的回覆。但我也嘗試過..只有一個條件。但是,我想要的結果是不。沒有文件添加到它的記錄。我怎麼才能得到它?我嘗試使用文檔<0,條件文檔<= 0,並刪除條件文檔> 0,但它仍然沒有返回我正確的號碼。記錄。 –

+0

也嘗試過使用條件documents = 0 –

+0

檢查編輯 - 仔細閱讀後,您可能會用「INNER JOIN」過濾掉您正在查找的記錄。 – AHiggins

相關問題