题
我是修改现有的非常查询哪些返回的个人列,而不是对象图但是现在我没有得到所有行,我需要。
这里的几个事实有关的目前架构:
- 一估计属于一个合同。
- 该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语法,以及一些非常力量。
除此之外,你没有提供映射的文件,这通常是有帮助的
不隶属于 StackOverflow