【发布时间】:2015-12-02 15:57:28
【问题描述】:
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”视图中,我有销售信息,在另一个视图中,我有一组特定的销售人员,我想从主视图中过滤出来。
我想了解查询返回空结果集的原因。
【问题讨论】:
-
由于
INNER JOIN的键未出现在所有记录中,记录中可能存在不匹配。如果您更改为LEFT OUTER JOIN,至少暂时获取没有匹配项的表记录,这会显示什么吗? -
如果我更改为 LEFT OUTER JOIN 它可以工作,但它会从主视图中带来所有记录,包括我需要的记录。如果我禁用其中一个内部联接,无论是哪一个,查询都可以正常工作;我不知道为什么不能同时工作。
标签: sql-server join inner-join