Newsgroup: it.comp.lang.visual-basic
Titolo: M'ando vADO?

Sono ancora in crisi con SQL ed ADO. Mi aiutate? Allora:
Ho un database composto di una tabella (MiaTabella) e 2 campi (Nome, Valore)
Molti records hanno lo stesso (valore di) Nome ma diverso (valore di) Valore
(True, False)
Con un solo comando SQL, vorrei che tutti i records con lo stesso (valore
di) Nome avessero Valore = True se ce ne fosse almeno uno con Valore= True
DataEnvironment1.Connection1.Execute "UPDATE MiaTabella SET Valore = True
WHERE ... E POI?????
esempio:
  Nome            Valore
1 Pippo            True
2 Pluto             False
3 Minnie           False
4 Pippo            False
5 Topolino        False
Vorrei che Pippo (4) diventasse con Valore = True in quanto esiste almeno un
Pippo (1) con Valore = True
Scusatemi se ogni tanto faccio di queste domande rompic...apo!
Grazie,
Brio

 Pippo (1) con Valore = True
UPDATE MiaTab
SET Valore = True
FROM MiaTab A INNER JOIN (SELECT Pippo FROM MiaTab WHERE Valore = True) B
    ON A.Nome = B.Nome
WHERE A.Valore = False
Non poco onerosa ma dovrebbe funzionare

 Pippo (1) con Valore = True
prova cosi:
UPDATE Tabella SET Tabella.NomeCampo3 = True
WHERE (((Tabella.NomeCampo2) In (select NomeCampo2 from Tabella
where NomeCampo3=True)))
--
bye BlackMagic
ICQ#:85485468

Grazie! Più tardi provo e vi dico il risultato
Brio

 Brio

 Pippo (1) con Valore = True
Questo lo fa per tutti i nomi:
Update MiaTabella Set Valore=True Where Valore=False and Nome In (Select
Distinct Nome From MiaTabella Where Valore=True)
Per uno specifico nome:
Update MiaTabella Set Valore=True Where Valore=False and Nome In (Select
Distinct Nome From MiaTabella Where Valore=True And Nome='Pippo')
Se Valore è un Boolean, io preferisco:
Update MiaTabella Set Valore=1 Where Valore<>0 and Nome In (Select Distinct
Nome From MiaTabella Where Valore<>0 And Nome='Pippo')

In primo luogo, vi ringrazio tutti
In secondo, vi dico l'esito dei vari comandi SQL che mi avete suggerito:
1)
UPDATE MiaTab
SET Valore = True
FROM MiaTab A INNER JOIN (SELECT Pippo FROM MiaTab WHERE Valore = True) B
    ON A.Nome = B.Nome
WHERE A.Valore = False
Ehm, la devo ancora provare (scusami, FoxMulder)
2)
UPDATE Tabella SET Tabella.NomeCampo3 = True
WHERE (((Tabella.NomeCampo2) In (select NomeCampo2 from Tabella
where NomeCampo3=True)))
Funziona (BlackMagic)
3)
Update MiaTabella Set Valore=True Where Valore=False and Nome In (Select
Distinct Nome From MiaTabella Where Valore=True)
Funziona ma solo togliendo "Valore=False and"
(Anche se cosě correggerebbe SOLO quelle ancora False, mi s'inchioda il
computer) (Lupo)
4)
UPDATE MiaTabella SET Valore=1 WHERE
Nome=(SELECT Nome FROM MiaTabella WHERE Valore=1)
Mi parte un la finestra di Debug. (Fabio)
Ripeto:
Grazie Mille, da solo non ci arrivavo.
Ciao,
Brio

"Brio" <frbr...@NOSPAMlibero.it> wrote in message
news:pNSC9.2267$3l.4...@twister1.libero.it...

Ora io NON voglio fare "er bullo" della situazione ... ma per cercare di
aprire un po' di dibattito ...
le altre query sono piů pesanti in quanto devono rieseguire  la subquery ad
ogni ciclo ..
la MIA soluzione prevede prima l'esecuzione della subquery (che restituisce
un set di righe) che va ad incrociarsi (INNER JOIN) con un'altra tabella ...
č proprio come fare due query distinte ...
di contro c'č che non l'ho provata :)
Saluti

 Saluti
OKOKOK La provo stasera! :)
Perdono,
Brio