Question

J'ai une base de données d'accès que nous utilisons pour suivre les tickets. Chaque ticket peut avoir plusieurs occurrences en raison de changements de programmation différents associés à ce ticket. Chaque enregistrement possède également un champ type_programme qui est SVR ou VB. Exemple:

123456 - SVR - SomeCode

123456 - VB - SomeVBCode

J'ai ajouté une colonne à la base de données appelée VB_Flag, dont la valeur par défaut est 0, que je souhaite remplacer par le numéro 1 pour chaque ticket contenant du code VB. Donc, le résultat ici serait:

123456 - SVR - SomeCode - 1

123456 - VB - SomeVBCode - 1

Mais, je ne sais pas comment écrire pour moi cette requête de mise à jour. Au début, j'ai essayé:

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

Mais cela a évidemment laissé de côté tout le code SVR qui partageait un numéro de ticket avec le code VB.

Je suis perdue. Aide?

Était-ce utile?

La solution

Cela devrait fonctionner:

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

Autres conseils

Vous pouvez faire quelque chose comme ceci:

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

L'instruction SELECT interne renvoie une liste de tous les ticket_ID dont le type de programme est 'VB'.

La mise à jour définit ensuite VB_Flag sur 1 pour TOUS les enregistrements avec l'un de ces ticket_ids (y compris ceux dont le type de programme est 'SVR'.

MISE À JOUR     Table     INNER JOIN Table AS Table2     ON Table.TicketNumber = Table2.TicketNumber ENSEMBLE     Table2.VB_Flag = 1 OÙ     (([Table]. [Programme_type] = & Quot; VB & Quot;))

Une simple sélection imbriquée devrait résoudre votre problème:

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top