Frage

Ich habe einen Zugang DB, die wir Tickets verfolgen verwenden. Jedes Ticket kann mehrere Vorkommen haben wegen der unterschiedlichen Programmänderungen mit diesem Ticket zugeordnet ist. Jeder Datensatz hat auch ein program_type Feld, das SVR oder VB ist. Beispiel:

123456 - SVR - SomeCode

123456 - VB - SomeVBCode

Ich habe eine Spalte in der Datenbank hinzugefügt VB_Flag genannt, die standardmäßig auf 0, was ich für jedes Ticket für die Nummer 1 ändern möchte VB-Code enthält. So würde das Ergebnis hier:

123456 - SVR - SomeCode - 1

123456 - VB - SomeVBCode - 1

Aber ich kann nicht für das Leben von mir herauszufinden, wie diese Update-Abfrage zu schreiben. Zuerst versuchte ich:

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

Aber das offensichtlich weggelassen alle SVR-Code, der eine Ticketnummer mit dem VB-Code geteilt.

Ich bin ratlos. Hilfe?

War es hilfreich?

Lösung

Dies sollte funktionieren:

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

Andere Tipps

Sie können etwas tun:

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

Die innere SELECT-Anweisung gibt eine Liste aller ticket_ids, die eine program_type von ‚VB‘ haben.

Das Update setzt dann den VB_Flag auf 1 für alle Datensätze mit einem jenem ticket_ids (das schließt solche mit einem program_type von ‚SVR‘.

UPDATE     Tabelle     INNER JOIN Tabelle AS Table2     ON = Table.TicketNumber Table2.TicketNumber EINSTELLEN     Table2.VB_Flag = 1 WO     (([Tabelle]. [Program_type] = "VB"))

Eine einfache verschachtelte wählen sollte Ihr Problem kümmern:

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top