【发布时间】:2014-06-05 20:11:50
【问题描述】:
我有两个 SQL Server 表。第一个表是客户表,包含客户编号、姓名等。第二个表包含客户的服务日期。客户可以有多个服务日期。以下是服务日期表的示例:
custnmbr DateIn DateOut
------------------------------------
78001 1991-02-10 2001-12-07
78001 2002-08-03 2003-06-17
78001 2006-11-22 NULL
我想选择最早的 DateIn 和最近的 DateOut。在上面的示例中,我希望将 DateIn 返回为 1991-02-10,并且由于客户当前处于活动状态,因此我希望将 DateOut 返回为 NULL。
这是我尝试过的,但没有运气
SELECT
SM.Custnmbr,
CONVERT (VARCHAR(10), MAX(LH.DateIn), 101) AS DateIn,
CONVERT (VARCHAR(10), MAX(LH.DateOut), 101) AS DateOut,
FROM
dbo.toCustomer SM
LEFT OUTER JOIN
dbo.toLocCustHist LH ON SM.CustomerId = LH.CustomerId
GROUP BY
SM.CustNmbr, SM.CustName, LH.LocationId
当我运行查询时,DateIn 是正确的 1991-02-10,但 DateOut 是 2003-06-17,这是错误的。
【问题讨论】:
标签: sql sql-server sql-server-2008