【发布时间】:2015-03-14 09:07:05
【问题描述】:
我想仅对 CustomerID 应用 distinct 并获取最新记录,因为我的 table1 中有 RecordUpdate_date 列。
我写了这个查询,但我缺少一些行(记录)并得到重复的记录。
请帮帮我。 谢谢
表1:
CustomerID, CustomerName, UpdateDate
表2:
CustomerID, DateofBirth
我的查询:
SELECT a.CustomerID
,a.CustomerName
,a.RecordUpDate_date
,b.DateofBirth
FROM Table1 AS a
INNER JOIN (
SELECT CustomerID
,MAX(RecordUpdate_date) AS max_RecordUpdate_date
FROM Table1
GROUP BY CustomerID
) AS abc
ON abc.CustomerID = a.CustomerID
AND abc.max_RecordUpdate_date = a.RecordUpdate_date
INNER JOIN Table2 AS b
ON b.CustomerID = a.CustomerID
INNER JOIN (
SELECT CustomerID
,MAX(DateofBirth) AS max_dob
FROM table2
GROUP BY CustomerID
) AS m
ON m.CustomerID = a.Customer
AND m.max_cus = c.DateofBirth
【问题讨论】:
-
为上帝的爱格式化您的代码
-
你想做什么?给出描述和一些示例记录。反正桌子好像不太正常!
-
为什么这些表中的任何一个都会有不止一行的 CustomerID?
-
更新客户名称应该更新同一行,而不是创建新行。
-
它创建新的,因为它跟踪了更新的日期
标签: sql sql-server database sql-server-2008