Zugang DB-Abfrage - Hilfe benötigen Aktualisierung bestimmter Datensätze
-
20-08-2019 - |
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?
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')