アクセスDBクエリ - 特定のレコードを更新する必要性のヘルプ

StackOverflow https://stackoverflow.com/questions/496483

  •  20-08-2019
  •  | 
  •  

質問

私たちはチケットを追跡するために使用するアクセスDBを持っています。各チケットは、そのせいで、チケットに関連したさまざまなプログラミングの変更の複数の出現を有することができます。各レコードはまた、SVRやVBでするprogram_typeフィールドがあります。例:

123456 - SVR - SomeCode

123456 - VB - SomeVBCode

私はVBのコードを含むすべてのチケットを1番に変更したい0デフォルト、VB_Flagと呼ばれるデータベースに列を追加しました。だから、ここの結果は以下のようになります:

123456 - SVR - SomeCode - 1

123456 - VB - SomeVBCode - 1

しかし、私は、この更新クエリを作成する方法私の人生のために把握することはできません。最初に私が試します:

UPDATE table SET VB_Flag = 1 WHERE program_type = 'VB'

しかし、それは明らかにVBコードでチケット番号を共有し、すべてのSVRコードを残しました。

私は途方に暮れてよ。ヘルプ?

役に立ちましたか?

解決

この作業をする必要があります:

UPDATE table SET VB_Flag = 1 
WHERE TicketNum IN (SELECT TicketNum FROM Table WHERE program_type = 'VB')

他のヒント

あなたはこのような何かをすることができます:

UPDATE tickets SET VB_Flag = 1
WHERE ticket_id IN (SELECT ticket_id FROM tickets WHERE program_type = 'VB');

内側のSELECTステートメントは、「VB」のするprogram_typeを持つすべてのticket_idsのリストを返します。

更新は、次に、「SVR」のするprogram_typeを有するものを含み、その(それらticket_idsのいずれかですべてのレコードの1にVB_Flagを設定します。

UPDATE     テーブル     INNERは、表2、表を登録しよう     Table.TicketNumber = Table2.TicketNumber ON セットする     Table2.VB_Flag = 1 どこ     (([表] [するprogram_type] = "VB"))

シンプルなネストされた選択は、あなたの問題の世話をする必要があります:

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top