C# SQL-左联接上没有空值
我一直在WinForms应用程序中使用图表控件,在绘制正确的点时遇到了一些问题-我尝试了很多方法,包括DataManipulator.InsertEmptyPoints,但都没有成功 所以,我决定改进我的SQL查询-虽然已经完成了,但它仍然不包含0/Null值-但是我的左连接遇到了一些问题-它没有返回任何Null值 查询: 选择FC_名称,将结果计数。结果ID为“NumFindings” 从查找类别 左连接Findingsubcategories.FC_ID=FindingCategories.FC_ID上的Findingsubcategories 在Findings.FSC_ID=Findingsubcategories.FSC_ID上左连接查找结果 -在Audit.Audit\u ID=Findings.AU\u ID上左加入审核 -其中Audit.Audit_ID=932 按FC_名称分组 查询的输出 现在,当我删除注释并在查询中包含这两行时 正如我所希望的那样:C# SQL-左联接上没有空值,c#,sql-server,C#,Sql Server,我一直在WinForms应用程序中使用图表控件,在绘制正确的点时遇到了一些问题-我尝试了很多方法,包括DataManipulator.InsertEmptyPoints,但都没有成功 所以,我决定改进我的SQL查询-虽然已经完成了,但它仍然不包含0/Null值-但是我的左连接遇到了一些问题-它没有返回任何Null值 查询: 选择FC_名称,将结果计数。结果ID为“NumFindings” 从查找类别 左连接Findingsubcategories.FC_ID=FindingCategories.
FC_Name | NumFindings
Category 1
Category 6
Category 1
Category 0/Null
Category 0/Null
Category 0/Null
Category 0/Null
我做错了什么?我设法推断我的一个连接是多余的,没有做任何事情,解决方案是: 选择FC_名称,COUNTFindings.Findings_ID作为“NumFindings” 从查找类别 Findingsubcategories.FC_ID=FindingCategories.FC_ID上的左外部联接Findingsubcategories 在Findings.FSC_ID=Findingsubcategories.FSC_ID和Findings.AU_ID=932上的左外部联接结果 按FC_名称分组
你能在Audit.Audit_ID=Findings.AU_ID和Audit.Audit_ID=932上尝试左联合审计,而不是使用单独的WHERE吗?没有更改我的结果:/@Krono,将你的解决方案作为此问题的答案发布。然后接受它。您通过从左连接更改为左外部连接来解决它,从而更改结果。您可以将这些其他联接放回,并将它们更改为外部联接,这样仍然可以工作。是外部因素造成了差异。@Corey,不正确。这不仅仅是join类型,还有我的where语句。我目前正试图使此查询现在可以处理上一年的数据。@Corey问题是因为WHERE,它在加入后过滤结果。然而,将约束放在连接上揭示了一个事实,即必须对发现进行过滤,因此将连接留给审计没有任何作用,可以删除entirely@Rob,有什么线索可以告诉我如何使用上一年的数据条目进行此查询?在第二个语句中-我目前可以通过执行Audit_ID-1来实现这一点,但上一年的值并不总是-1behind@Krono如果您有datetime列,可以通过datediff来实现。虽然我不知道审计ID与一年的关系。。也许不应该。如果出于某种原因,一年中有两次审计会怎样?