t-sql自连接的最大日期

时间:2014-02-28 17:58:43

标签: sql-server tsql

在t-sql 2008中,我有一个表,我需要根据客户编号,cust_date和属性id连接到自己的服务器项。 attrribute id值分别为53,54和55.在一年中可能会出现很多次的属性id,因此cust_date可以更改。 我需要将表中的行连接到自己几次,其中cust_date是相同的,并且是最新的日期。

因此,您可以通过选择最大cust_date和for属性值= 53,54和55来向我展示如何将表连接到自身吗?

3 个答案:

答案 0 :(得分:1)

如果我了解您的要求,您可能不需要加入,但可以执行类似

的操作
select customerNumber, 
  Max(case where attributeid = 53 then Cust_date else null end) as A53CustDate,
  Max(case where attributeid = 54 then Cust_date else null end) as A54CustDate,
  Max(case where attributeid = 55 then Cust_date else null end) as A55CustDate,
from MyTable
where Attributeid in (53,54,55)
group by
  CustomerNumber

答案 1 :(得分:0)

你可以这样做:

select customerNumber, 
   Case when attributeid in (53,54,55) Then max(cust_date) else NULL END as CustDate
from MyTable
group by
  CustomerNumber

答案 2 :(得分:0)

假设我理解正确,以下应该可以解决问题。我定义了一个cte,其中我获取了属性类型53-55的所有记录的客户编号,属性和最大日期,然后将结果与初始表连接:

  server-url:'url';