Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30

    Dubbio su UPDATE STATEMENT SQL oracle

    Salve, ho un dubbio per quanto riguarda l'Update.

    In pratica dovrei aggiornare una colonna, ma solo in base ai valori che ci sono in un'altra tabella.

    spiego meglio

    UPDATE LIBRERIA SET QUANTITA' = 5

    Così mi aggiorna tutte le righe? e setta la quantità al valore 5?

    se invece volessi far aggiornare la quantità a 5 ma solo in base agli ID contenuti in un'altra tabella?

    UPDATE LIBRERIA SET QUANTITA=5 WHERE ( SELECT ID FROM CARRELLO)

    quindi aggiorna la quantità solo degli ID corrispondenti, che combaciano tra le due tabell (che sono uguali come campi).

    Ho scritto qualche sciocchezza di sicuro, ma spero che sia riuscito a spiegarmi.

    grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    imola
    Messaggi
    47
    UPDATE LIBRERIA SET QUANTITA' = 5
    questo aggiorna in modo indiscriminato tutte le righe della tabella settando quantità = 5

    UPDATE LIBRERIA SET QUANTITA=5 WHERE tabella1.id in (SELECT carrello.ID FROM CARRELLO)
    questa aggiorna le righe impostandole a 5 quando la colonna ID (della tabella che deve
    essere aggiornata) è presente nella tabella CARRELLO
    però prima fai una prova
    ciao

  3. #3
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30
    Quote Originariamente inviata da antonioimola Visualizza il messaggio
    UPDATE LIBRERIA SET QUANTITA' = 5
    questo aggiorna in modo indiscriminato tutte le righe della tabella settando quantità = 5

    UPDATE LIBRERIA SET QUANTITA=5 WHERE tabella1.id in (SELECT carrello.ID FROM CARRELLO)
    questa aggiorna le righe impostandole a 5 quando la colonna ID (della tabella che deve
    essere aggiornata) è presente nella tabella CARRELLO
    però prima fai una prova
    ciao
    Funziona perfettamente, avevo provato anche altri modi però "in" non lo mettevo.

    grazie infinite.


    ultima cosa

    ho anche questa stringa:

    codice:
    UPDATE PROGETTO.libro SET DISPONIBILITA = (DISPONIBILITA - 1 ) where isbn='" + txt.getText() + "'";

    txt.getText() ? = è un txtField dove inserisco l'isbn da aggiungere al carrello e una volta inserito dovrebbe decrementare la quantità, non da errori, però non decrementa la quantità in base all'isbn inserito. dove sbaglio?


    PS: è possibile far comparire un messagio in base alla quantità? cioè se la quantità è zero:

    codice:
    JOptionPane.showMessageDialog(null, "QUANTITIA ESAURITA","ERRORE", JOptionPane.WARNING_MESSAGE);

    Se provo così:

    codice:
    String sql1= "SELECT disponibilita FROM LIBRO"; //aggiorna lo stato login
               
    stmt = conn.createStatement();
                
    emps = stmt.executeQuery(sql1);
               
       if (emps = 0 ){
    
    ....ERRORE
    
    }else{
    
    
    UPDATE PROGETTO.libro SET DISPONIBILITA = (DISPONIBILITA - 1 ) where isbn='" + txt.getText() + "'";
    
    }

    grazie ancora

  4. #4
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30
    EDIT (non riesco a modificare il post precedente)

    Ho risolto tutto, resta solo l'if per verificare la quantità sia zero

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    imola
    Messaggi
    47
    UPDATE PROGETTO.libro SET DISPONIBILITA = (DISPONIBILITA - 1 ) where isbn='" + txt.getText() + "'
    controlla txt.getText() sia un valore presente in tabella , c'è differenza anche tra maiuscolo / minuscolo

    SELECT disponibilita FROM LIBRO where bla /bla

    forse ti manca una condizione di where

  6. #6
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30
    Quote Originariamente inviata da antonioimola Visualizza il messaggio
    UPDATE PROGETTO.libro SET DISPONIBILITA = (DISPONIBILITA - 1 ) where isbn='" + txt.getText() + "'
    controlla txt.getText() sia un valore presente in tabella , c'è differenza anche tra maiuscolo / minuscolo

    SELECT disponibilita FROM LIBRO where bla /bla

    forse ti manca una condizione di where
    il primo problema ho risolto tutto. funziona tutto perfettamente.

    l'unica cosa sta in questo IF

    in pratica se disponibilita = 0 restituisce errore altrimenti esegue tutto il resto.

    fatto


    come andrebbe impostato?

    la where = disponibilita = 0

    quindi l'emps dovrebbe risultare = 0 dato che non esegue

    codice:
    int disp=0;
    if (disp !=0) {
    
    esegue tutto
    
    else 
    
    errore?

    potrebbe funzionare così?

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    imola
    Messaggi
    47
    ti dico la sintassi in ASP ma quello che usi tu (PHP ?) dovrebbe essere molto simile :

    sql="select disponibilita from libro where id = 150"
    stringa del comando sql , qui controlla la disponibilita per articolo con codice 150

    record.open sql, dbase, 3
    legge il record (suppondol'articolo 150 esista)

    wsdisponibilita = record("disponibilita")
    appoggio il contenuto della colonna in una variabile del programma

    record.close
    chiusura del recorset

    if wsdisponibilita = 0 then ....

    fammi sapere ..
    ciao

Tag per questa discussione

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.