0

我有以下查询:

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

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

4

1 回答 1

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 的至少一条记录。

于 2012-10-08T12:06:50.050 回答