繁体   English   中英

SQL Server查询带有日期字段的内部联接不起作用

[英]SQL Server query inner join with date field doesn't work

  1. 带日期(表1)
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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM