Visualizzazione risultati 1 fino 2 di 2

Discussione: Select sum + group by

  1. #1
    personalthings non è connesso Utente giovane
    Data registrazione
    10-08-2013
    Messaggi
    73

    Predefinito Select sum + group by

    Ciao a tutti.
    Ho due tabelle così formate:

    user_mansioni
    id user id_mansione livello
    1 rossi 160 3
    2 rossi 100 5
    3 rossi 50 2

    log_mansioni
    id user id_mansione livello_comprato
    1 rossi 160 1
    2 rossi 160 1
    3 rossi 50 1

    Il campo di riferimento tra le due tabelle è id_mansione, così la prima cosa che faccio è raggruppare i risultati comuni partendo dalla tabella log_mansioni.

    Codice PHP:
    $query = gdrcd_query("SELECT log_mansioni.*, user_mansioni.*, SUM(log_mansioni.livello_comprato) AS totale
    FROM log_mansioni
    INNER JOIN user_mansioni ON user_mansioni.id_mansione = log_mansioni.id_mansione
    WHERE log_mansioni.nome = 'rossi'
    GROUP BY log_mansioni.id_mansione;"
    , 'result');
    Il codice mi trova tutte le corrispondenze tra le due tabelle MA NON MI CALCOLA IL SUM.

    Una volta estrapolate le correlazioni, ho aperto un ciclo while perché dovrei fare un conteggio del campo livello_comprato delle corrispondenze trovare e sottrarle dal campo livello della tabella user_mansioni.
    Nel caso specifico, le due corrispondenze sono 160 e 50:

    (log_mansioni) 160 = 1+1 = 2 -> (user_mansioni) 3-2 = 1
    (log_mansioni) 50 = 1 -> (user_mansioni) 2-1 = 1

    Ho provato con:


    Codice PHP:
    $minus = gdrcd_query(" UPDATE user_mansioni SET livello = livello - ". $query['totale'] ." WHERE nome = 'rossi' AND id_mansione = '". $query['id_mansione'] ."' ");
    perché mi restituisce

    Fatal error: Cannot use object of type mysqli_result as array
    Ultima modifica di personalthings : 06-05-2023 alle ore 11.47.25

  2. #2
    personalthings non è connesso Utente giovane
    Data registrazione
    10-08-2013
    Messaggi
    73

    Predefinito

    Problema risolto.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •