Domanda

Ho un DB di accesso che usiamo per monitorare i biglietti. Ogni biglietto può avere più occorrenze a causa dei diversi cambiamenti di programmazione associati a quel biglietto. Ogni record ha anche un campo program_type che è SVR o VB. Esempio:

123456 - SVR - SomeCode

123456 - VB - SomeVBCode

Ho aggiunto una colonna per il database chiamato VB_Flag, che per impostazione predefinita 0, che vorrei cambiare il numero 1 per ogni biglietto contenente codice VB. Quindi, il risultato qui sarebbe:

123456 - SVR - SomeCode - 1

123456 - VB - SomeVBCode - 1

Ma, io non riesco a capire per la vita di me come scrivere questa query di aggiornamento. In un primo momento ho provato:

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

Ma che, ovviamente, lasciato fuori tutto il codice SVR che ha condiviso un numero di ticket con il codice VB.

Sono in perdita. Aiuto?

È stato utile?

Soluzione

Questo dovrebbe funzionare:

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

Altri suggerimenti

Si può fare qualcosa di simile:

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

L'istruzione SELECT interna restituisce un elenco di tutti ticket_ids che hanno un program_type di 'VB'.

L'aggiornamento quindi imposta la VB_Flag a 1 per tutti i record con una di quelle ticket_ids (che comprende quelli con un program_type di 'SVR'.

UPDATE     tavolo     INNER JOIN tabella come Table2     ON Table.TicketNumber = Table2.TicketNumber IMPOSTATO     Table2.VB_Flag = 1 DOVE     (([Tabella] [program_type] = quot. &; & VB quot;))

Un semplice selezionare nidificato dovrebbe prendersi cura del vostro problema:

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top