在同一列

时间:2015-12-02 15:57:28

标签: sql-server join inner-join

我在尝试使用另一个视图加入视图的SQL Server查询时出现问题

SELECT 
    FAC.* 
FROM 
    ViewFacturacionDiaria_Test AS FAC
INNER JOIN
    ViewInformacionRepresentantes AS REP
        ON REP.RepIDTabacal = FAC.Vendedor
INNER JOIN
    ViewInformacionRepresentantes AS REP2
        ON REP2.RepIDCtayOrden = FAC.Vendedor
WHERE
    FecCpbte BETWEEN '2015-11-28' AND '2015-11-30'

在“FAC”视图中,我有销售信息,在另一个视图中,我有一个特定的销售人员组,我想从主视图中过滤。

我想了解查询返回空结果集的原因。

1 个答案:

答案 0 :(得分:3)

对不起,我无法发表评论。但我相信彼得的评论是正确的。由于您使用了2个内连接,因此它们都需要返回结果。你期望两个联接找到一个匹配?

试试这个,看看哪个列为空。这是导致没有返回行的连接。

SELECT 
    FAC.Vendedor
    ,REP.RepIDTabacal
    ,REP2.RepIDCtayOrden
FROM 
    ViewFacturacionDiaria_Test AS FAC
LEFT JOIN
    ViewInformacionRepresentantes AS REP ON
    REP.RepIDTabacal = FAC.Vendedor
LEFT JOIN
    ViewInformacionRepresentantes AS REP2 ON
    REP2.RepIDCtayOrden = FAC.Vendedor
WHERE
    FecCpbte BETWEEN '2015-11-28' AND '2015-11-30'