Visualizzazione dei risultati da 1 a 3 su 3

Discussione: SQL - update selettivo

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957

    SQL - update selettivo

    Ciao a tutti,
    ho questa particolare esigenza e vorrei capire se è possibile fare un'unica query:

    Ho due tabelle:

    INTERVENTI (id, descrizione, fatturato)
    USCITE (id, intervento, data)

    la tabella USCITA ha una FOREIGN KEY a INTERVENTI da cui dipende.

    Vorrei con un'unica query fare un'update di INTERVENTI se e solo se tutte le sue uscite collegate hanno una data inferiore alla data odierna.
    Attenzione che non voglio che esista almeno un'uscita con data odierna inferiore, ma tutte devono avere data odierna inferiore...

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Spero di aver ben capito la tua richiesta.
    Per precauzione testa la query su una copia delle tabelle.

    codice:
    update interventi
    left join (
    select intervento,count(`data`) as quante,sum(if(`data` < curdate(),1,0)) as passate
    from uscite
    group by intervento
    ) as tab
    on interventi.id = tab.intervento
    set interventi.fatturato = 100
    where id = 1 and tab.quante = tab.passate
    L'esempio che ti ho scritto aggiornerà il campo fatturato della tabella interventi, nello specifico il fatturato del record con id uguale a 1, soltanto se il numero delle date registrate e quello della date trascorse coincidono. Nel caso in cui ci sia almeno una data futura relativa a quell'id non verrà apportata alcuna modifica.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    Fantastico...
    Grazie mille

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.