【发布时间】:2012-03-01 00:19:37
【问题描述】:
我有一个消费者表,其中包含以下列 - Email、AccountState 和 DateCreated
AccountState 的值可以是 1(活动)、2(非活动)和 3(已归档)
一个特定的消费者可以有多个由上面的帐户状态组成的行。
我要做的是构造一个返回以下内容的查询
A.每个消费者的消费者记录列表(使用电子邮件地址)
B.只有不是最新的记录(所以如果一个特定的电子邮件地址有 3 条记录,每个州有 1 条,它将返回不是最新的 2 条)
然后,一旦我有了这个列表,我想将所有这些状态设置为 3,因为它们需要被存档。
因此对于此处显示的示例数据
只会返回第 13 - 16 行。
我尝试使用下面的查询来执行此操作,但它不起作用。
SELECT con.Email,
con.Id,
con.DateCreated AS DateRegistered,
con.DateLastActivity,
con.hasiPhone,
con.hasAndroid,
con.hasSMS,
con.CurrencyCode AS Currency,
con.AccountState
FROM Consumer con
WHERE con.AccountState <> 1
AND DateCreated =( SELECT MAX(DateCreated)
FROM Consumer con_most_recent
WHERE con_most_recent.AccountState <> 1
AND con_most_recent.Id = con.Id)
order by Email asc
【问题讨论】:
标签: database tsql sql-server-2008-r2