如何更新2场,在2个不同的条件:专家您好,
我乌代Satardekar,
我插入SQL Server 2005中的数据(电子邮件)使用存储过程。
我有2情景
1。
如果我发现任何重复的电子邮件,然后我在某些direction.means更新唯一的状态,如果重复的电子邮件的状态是比数据库邮件的状态中,然后,我让更新。
日期和状态信息存储在companyinfo table.and电子邮件存储在emailinfo表。
#TempTable是在存储过程中的临时表,其中包含新鲜的和重复的电子邮件。
更新重复邮件的状态,根据情况,我写了下面的代码。
UPDATE dbo.companyinfo
SET companyinfo.status=RESULT.status
FROM
(
select TEMP1.status,TEMP1.DataID
from
(
SELECT tmp.email,tmp.status,Email.DataID,ROW_NUMBER() OVER (PARTITION BY tmp.email ORDER BY tmp.email ) AS 'RowNumber'
FROM #TempTable tmp
LEFT OUTER JOIN emailinfo Email ON tmp.email=Email.email
WHERE
tmp.email !=''
AND
EXISTS (SELECT * FROM dbo.emailinfo WHERE email=tmp.email)
)AS TEMP1
LEFT OUTER JOIN dbo.companyinfo COMPANY ON TEMP1.DataID=COMPANY.dataId
where --cmp.status !=8 And
TEMP1.RowNumber=1 AND
COMPANY.status !=1 AND
COMPANY.status < 6 AND
TEMP1.status < COMPANY.status
) AS RESULT
WHERE companyinfo.dataId=RESULT.DataID
(2)
现在,在所有条件下如何更新日期?如果我发现任何重复的邮件,那么它也更新日期。
如何实现这两个条件 - 1。更新状态与条件,以及2。更新日期与有效的方式,在所有重复?感谢在前进。