[英]SQL Server query inner join with date field doesn't work
date ----------- 2014-01-01 2014-01-02 2014-01-03 2014-01-04 2014-01-05 2014-01-06 2014-01-07 2014-01-08 2014-01-09 2014-01-10 2014-01-11 2014-01-12 2014-01-13 2014-01-14 2014-01-15 2014-01-16 2014-01-17 2014-01-18 2014-01-19 2014-01-20 2014-01-21 2014-01-22 2014-01-23 2014-01-24 2014-01-25 2014-01-26 2014-01-27 2014-01-28 2014-01-29 2014-01-30 2014-01-31
还有一个带有日期和其他列的视图(view1)。
date | CustomerID ------------------------- 2014-01-02 2 2014-01-03 2 2014-01-04 2 2014-01-05 2 2014-01-06 2 2014-01-07 2 2014-01-08 2 2014-01-09 2 2014-01-10 2 2014-01-11 2 2014-01-12 2 2014-01-13 2 2014-01-14 2 2014-01-15 2 2014-01-16 2 2014-01-17 2 2014-01-18 2 2014-01-19 2 2014-01-20 2 2014-01-21 2 2014-01-22 2 2014-01-23 2 2014-01-24 2 2014-01-25 2 2014-01-26 2 2014-01-27 2 2014-01-28 2 2014-01-29 2 2014-01-30 2 2014-01-31 2
我希望查询返回table1中的所有记录,并且当日期相同时还返回CustomerID。 我虽然说一个简单的查询就足够了,但是它总是返回30条记录而不是31条(第一个表有31天,第二个表有30条记录,view1没有2014-01-01)。
SELECT T.DATE, V.CustomerID
FROM TABLE1 T
LEFT JOIN VIEW1 V on T.DATE = V.DATE
编辑:
SELECT T.DATE, V.CustomerID
FROM TABLE1 T
LEFT JOIN VIEW1 V on T.DATE = V.DATE
AND V.CustomerID = 2
--AND V.DATE BETWEEN 'YYYYMMDD' AND 'YYYYMMDD'
SELECT X.DATE, Y.CustomerID
FROM YourTable X
LEFT JOIN YourView Y on X.DATE = Y.DATE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.