在t-sql 2008中,我有一个表,我需要根据客户编号,cust_date和属性id连接到自己的服务器项。 attrribute id值分别为53,54和55.在一年中可能会出现很多次的属性id,因此cust_date可以更改。 我需要将表中的行连接到自己几次,其中cust_date是相同的,并且是最新的日期。
因此,您可以通过选择最大cust_date和for属性值= 53,54和55来向我展示如何将表连接到自身吗?
答案 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';