2011-05-20 12 views
1

私は古いASPアプリケーションを維持しています(ASPについてどう考えているか教えてください、私はすでに痛いほど自分自身を意識しています)ユーザー管理を簡単にするユーザーのアレイを更新する(同じユーザー名と電子メールを使用)

userID | companyID | loginname | email | endDate | ...

私は、ユーザーの配列のプロパティを設定するために、いくつかの速記の機能を構築しました:

ユーザテーブルは次のようになります。通常、endDateなどを設定するSQLは単純です。update users set endDate=x where userID in(y)

問題は、同じユーザーが複数回存在する可能性がある、つまりユーザー「David」が企業C1、C2およびC3のユーザーとして登録されていることにあります。電子メールとログイン名が同じ場合、ユーザーは「同じ」と見なされます。

質問:

私は同時に(すべての企業のための)デビッド、リサとエリックのために同じendDateに設定できますか?

+0

を試してみてください、あなたはすべての3人のユーザーに対して同じ 'endDate'を設定しようとしていますか? – Gabe

+0

はい、あなたの権利。私はそれを指定すべきだったと思う。 (完了) – David

答えて

1

この

UPDATE u 
SET endDate=x 
FROM USERS u 
INNER JOIN 
(
    SELECT loginname, email FROM USERS WHERE userID IN (y) 
) a 
ON u.loginname = a.loginname 
AND u.email = a.email 
+0

大きな感謝!できます! (私は多くのサブクエリを使って自分自身を試しましたが、うまく動作することはありませんでした)。あなたはずっときれいです! – David

関連する問題