我是修改现有的非常查询哪些返回的个人列,而不是对象图但是现在我没有得到所有行,我需要。

这里的几个事实有关的目前架构:

  • 一估计属于一个合同。
  • 该OwningDepartment财产的合同可以为空。
  • 该ParentBusinessStream财产的一部不能是空的

这是查询:

select e.ID, e.StatusCode.ID, e.InputDate, e.ParentClient.Name, e.ParentContractLocation.ParentLocation.Description, e.Description, e.InternalRef, e.ExternalRef, e.TotalIncTax, e.TaxTotal, e.Closed, e.ViewedByClient, e.HelpdeskRef, e.ParentContract.Reference, d.ParentBusinessStream.Title, d.Name
from Estimate e, Department d where (e.ParentContract.ID in (select cs.ParentContract.ID from ContractStaff cs
where cs.ParentStaff.ID=:staffID)) and ((d.ID = e.ParentContract.OwningDepartment.ID) OR (d.ID is null)) order by e.ID

不幸的是我的查询是没有返回,估计那里的父合同没有一个拥有部门。而不是我想要的相关领域的只是空。我试图左外加入,但也得到了同样的结果。

任何帮助将非常赞赏。很抱歉如果我做了一些愚蠢的。

干杯,

詹姆斯

有帮助吗?

解决方案 2

我认为我有工作了出来:d。ParentBusinessStream.标题是一个隐含的内加入,但由于d可以null它不能正常工作。我已经改变了我的查询,以考虑到这一点

其他提示

我发现不寻常的查询包含左外同最好通过使用ISQLQuery,让你进入到适当的SQL语法,以及一些非常力量。

除此之外,你没有提供映射的文件,这通常是有帮助的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top