Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124

    [access] query di aggiornamento

    Ciao, avrei bisogno di un aiuto su una query:
    Ho una tabella con 3 campi: nome - numero - flag
    Nel campo "nome" e nel campo "numero" ci possono essere valori ripetuti, io ho bisogno di impostare a "1" il campo "flag" solo per i record con i valori minimi di "num".
    Mi spiego meglio con un esempio:
    Questo è un esempio della mia tabella con 4 record, e solo i campi "nome" e "num" compilati

    Pippo 1
    Pippo 2
    Aaaa 8
    Aaaa 7

    A questo punto devo impostare a "1" solo i valori dei record col nome univoco ma con il "num" più basso, quindi mi diventerà:

    Pippo 1 1
    Pippo 2
    Aaaa 8
    Aaaa 7 1

    Come posso fare?

  2. #2
    SELECT Tabella1.NOME, Min(Tabella1.NUMERO) AS MinDiNUMERO
    FROM Tabella1
    GROUP BY Tabella1.NOME;
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  3. #3
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124
    Con questa query riesco a vedere effettivamente tutti i record che devo andare a modificare, ma se la inserisco in una query di aggiornamento per andare asettare a "1" il valore del campo mi dice "per l'operazione è necessaria una query aggiornabile".
    In pratica vedo i valori che devo modificare ma non riesco a farlo

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    update tabella set flag = 1
    where tabella.id in (
    select tab1.id
    from tabella as tab1
    where num = (select min(num) from tabella as tab2 where tab1.nome = tab2.nome));
    Per prudenza testa la query su una copia di backup della tabella.

    Sull'utilità e la correttezza di ciò che vuoi fare ho i miei dubbi. Se il valore minore relativo a un gruppo cambia ti ritrovi dati non consistenti.
    Se invece i dati sono statici tale flag è comunque inutile, visto che i record possono essere estratti in qualsiasi momento con una select.

  5. #5
    ops scusa ti avevo scritto una query normale di selezione.

    grazie nicola75ss
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  6. #6
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124
    grazie a tutti e 2


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.