编辑:购买当然也包含一个名为Date
的列。我的坏。
我有一个表格Purchases
,其中包含CustomerId
,PhoneNumber
,Purchase
,Price
和Date
列。
我想将有关客户的信息移至新表Customers
。
其中包含CustomerId
和PhoneNumber
。
具有相同CustomerId
的行可以在Purchases
中多次出现,我只想要每个CustomerId
的最新行,因为它将包含最新的PhoneNumber
对于那个客户。
我阅读了一些关于DISTINCT
的内容,但是我从中了解到用于查找唯一行的内容(对吗?)。
我尝试了一些内部联接的东西,但由于我是初学者,如果我发布它,我觉得它不会有多大贡献:)
答案 0 :(得分:5)
尝试这样的事情:
;WITH MyCustomerRows As
(
SELECT ROW_NUMBER() OVER(PARTITION BY CustomerID ORDER BY [Date] DESC) AS CustomerIndex
,CustomerID
,PhoneNumber
FROM Purchases
)
INSERT INTO NewCustomerTable(CustomerID,PhoneNumber)
SELECT CustomerID,PhoneNumber
FROM MyCustomerRows
WHERE CustomerIndex =1 --this will pick just the first row, which is the newest...