我有以下查询:
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?
答案 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中的至少一条记录。