2013-12-16 22 views
1

请我想从两个实体(企业合作伙伴和直销代理)的组合中得到结果,我已经在其中指定了列。这两个实体通过充当过滤器的查找(直销经理)连接到另一个实体。我不能得到内部连接的结果

这是这里的代码

SELECT 
    Filterednew_corporatepartner.new_cpid AS CorporatePartnerID 
    ,Filterednew_corporatepartner.new_name AS CorporatePartnerName 
    ,Filterednew_corporatepartner.new_shortcode_cp AS CorporatePartnerShortcode 
    ,Filterednew_directsalesagents.new_agentcode AS DSAAgentcode 
    ,Filterednew_directsalesagents.new_name AS DSAName 
    ,Filterednew_directsalesmanager.new_name AS DSMName 
    ,Filterednew_directsalesmanager.createdon AS CreatedOn 
FROM 
    Filterednew_directsalesmanager 
INNER JOIN Filterednew_directsalesagents 
ON Filterednew_directsalesmanager.new_name = Filterednew_directsalesagents.new_directsalesmanagername 

INNER JOIN Filterednew_corporatepartner 
ON Filterednew_directsalesmanager.new_name = Filterednew_corporatepartner.new_dsmname 


WHERE (Filterednew_directsalesmanager.createdon >= @StartDate) AND (Filterednew_directsalesmanager.createdon <= @EndDate) AND (Filterednew_directsalesmanager.new_name IN (@DSM)) 
+3

请尽量使用http://sqlfiddle.com/别人来帮助你更好地 – vishnu

回答

0

检查Filterednew_directsalesagents和Filterednew_corporatepartner表有一定的价值是零,当你添加

WHERE (Filterednew_directsalesmanager.createdon >= @StartDate) AND (Filterednew_directsalesmanager.createdon <= @EndDate) AND (Filterednew_directsalesmanager.new_name IN (@DSM)) 

条件,这就是为什么你没有得到结果。

我的建议是使用左外连接,而不是内部联接

UPDATE:只是检查这个环节我是冲浪同样的问题。

How to Calculate From 2 Tables in SQL?

+0

我试图改变INNER JOIN的建议,但还是没有给出预期的结果。但是当我删除WHERE子句我得到的结果,但我需要过滤器在那里 – Olu

+0

@olu:请参阅更新的答案 –