COUNT_BIG()返回1,即使它应该为0

时间:2012-10-08 12:04:30

标签: sql

我有以下查询:

SELECT     dbo.Enquiries.EnquiryID, COUNT_BIG(dbo.Enquiries.EnquiryID) AS AttachedLines
FROM         dbo.Enquiries INNER JOIN
                      dbo.QuoteLines ON dbo.Enquiries.EnquiryID = dbo.QuoteLines.EnquiryID
GROUP BY dbo.Enquiries.EnquiryID

我的一些查询附加了0 QuoteLines,但在我的视图中,它们返回为1?

1 个答案:

答案 0 :(得分:2)

COUNT_BIG(*)更改为依靠列,例如COUNT_BIG(SomeColumn) - 这将跳过列中的NULL。我假设您的实际查询使用的是LEFT JOIN

根据您的情况,您说明

  

我的一些查询附有0个QuoteLines,但在我的视图中,它们返回1?

哪会使INNER JOIN失败。所以你要么显示错误的查询,要么声明不正确。在任何一种情况下,您都可以使用此查询进行故障排除:

SELECT dbo.Enquiries.EnquiryID,
       dbo.QuoteLines.*
FROM   dbo.DayBookEnquiries INNER JOIN
       dbo.QuoteLines ON dbo.Enquiries.EnquiryID = dbo.QuoteLines.EnquiryID

它将显示QuoteLines中的至少一条记录。