2009-01-30 6 views
2

J'ai un DB 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 a également un champ program_type qui est SVR ou VB. Exemple:Requête DB d'accès - besoin d'aide pour mettre à jour certains enregistrements

123456 - SVR - SomeCode 

123456 - VB - SomeVBCode 

J'ai ajouté une colonne à la base de données appelée VB_Flag, qui par défaut 0, que je voudrais changer au numéro 1 pour chaque billet contenant le code VB. Ainsi, le résultat serait ici:

123456 - SVR - SomeCode - 1 

123456 - VB - SomeVBCode - 1 

Mais, je ne peux pas pour la vie de moi comment écrire 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 omis tout le code SVR qui a partagé un numéro de ticket avec le code VB.

Je suis à perte. Aidez-moi?

Répondre

1

Cela devrait fonctionner:

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

lol - vous étiez plus vite que moi – Traingamer

+0

Merci je l'avais joué avec le TicketNum IN() mais ne pouvait pas tout à fait le comprendre – somacore

0

Une sélection simple, imbriqué doit prendre soin de votre problème:

UPDATE myTable 
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB') 
1

MISE À JOUR Table INNER JOIN Tableau AS Tableau2 SUR Table.TicketNumber = Tableau2. TicketNumber SET Table2.VB_Flag = 1 O WH (([Table]. [Type_programme] = "VB"))

2

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 retourne une liste interne de tous les ticket_ids qui ont une program_type de « VB ». .

La mise à jour met alors le VB_Flag à 1 pour tous les enregistrements avec un de ces ticket_ids (qui inclut ceux qui ont un program_type de « SVR »

+0

Merci pour l'explication approfondie Vous avez été battu sur la réponse, mais je voulais que vous sachiez que c'était très utile aussi – somacore

+0

J'ai trouvé une explication sur le fonctionnement de ce type de requête imbriquée. –

Questions connexes