我有一个Sp从表中选择一些值,并且有一个左外部联接,联接的条件是相对于from和to日期进行选择。
我需要选择这两个日期的黑白数据。
这是零件的外观
SELECT *// all the needed columns
FROM mytable
//other joins
LEFT OUTER JOIN myview ON
//some conditions
myview .soldDate between @fromdate and @todate
选择工作正常,它只选择那些日期前后的数据,但还选择空日期。
如何避免选择这些空值?
答案 0 :(得分:1)
您可以尝试在where
而不是on
中设置条件,因为您使用的是outer join
SELECT *// all the needed columns
FROM mytable
//other joins
LEFT OUTER JOIN myview ON
//some conditions
WHERE
myview.soldDate between @fromdate and @todate
或者仅使用INNER JOIN
代替LEFT OUTER JOIN
答案 1 :(得分:0)
排除联接中没有soldDate
SELECT * -- all the needed columns
FROM mytable
--other joins
LEFT OUTER JOIN myview ON -- conditions
(myview.soldDate IS NOT NULL AND myview.soldDate between @fromdate and @todate
您的问题并未解释为什么soldDate
是NULL
。这可能是由于LEFT JOIN
造成的,也可能是设计使然。
如果是第一个,只需使用INNER JOIN。如果是设计使然,请使用上面的查询。