Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    SUM e poi DIFF con 2 tabelle

    Ho due tabelle ore e contratti.
    TABELLA ore = Id_utente - ore_fatte
    TABELLA contratti= Id_utente - ore_contratti

    Adesso devo effettuare la somma di tutte le ore_fatte di ogni utente e con il totale di ognuno devo fare la differenza con ore_contratti di ognuno

    si può fare con un'unica query?

    Ciao

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Prova questa
    codice:
    SELECT Sum(Lavorate.ore_lav)-Sum(Contratto.ore_cont) AS diff, Lavorate.id_utente
    FROM Contratto INNER JOIN Lavorate ON Contratto.id_utente = Lavorate.id_utente
    GROUP BY Lavorate.id_utente;
    dimenticavo, non l'ho testata
    Ultima modifica di clasku; 26-08-2014 a 12:11

  3. #3
    Codice PHP:
    $query_Recordset10 "SELECT Sum(Lavorate.ore_lav)-Sum(Contratto.ore_cont) AS diff, Lavorate.id_utente FROM Contratto INNER JOIN Lavorate ON Contratto.id_utente = Lavorate.id_utente GROUP BY Lavorate.id_utente";
    $Recordset10 mysql_query($query_Recordset10$risto) or die(mysql_error());
    $row_Recordset10 mysql_fetch_assoc($Recordset10);
    $totalRows_Recordset10 mysql_num_rows($Recordset10); 
    Scusa l'ignoranza ma come echo dovrei mettere

    Codice PHP:
    echo $row_Recordset10['tot']; 
    non visualizzo nulla

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    per prima cosa, la query che serve a te avrà perlomeno i campi e le tabelle diversi dall'esempio teorico che ti ho postato io, quindi non avresti risultati
    seconda cosa, mi sa che la query come l'ho postata non può funzionare, sarebbe da rivedere un po'

  5. #5
    Codice PHP:
    $query "SELECT SUM(O.ore_fatte) AS tot, C.ore_contratti AS oreContr, tot-oreContr AS difference FROM ore O WHERE O.idUtente = :idUtente INNER JOIN contratti C ON C.idUtente = O.idUtente" 
    non testato
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Quote Originariamente inviata da cinghialotto35 Visualizza il messaggio
    Ho due tabelle ore e contratti.
    TABELLA ore = Id_utente - ore_fatte
    TABELLA contratti= Id_utente - ore_contratti

    Adesso devo effettuare la somma di tutte le ore_fatte di ogni utente e con il totale di ognuno devo fare la differenza con ore_contratti di ognuno

    si può fare con un'unica query?
    se il dbms lo permette puoi fare una cosa del genere
    (non testata ed ignoro la possibilità che qualche dato possa essere null)

    codice:
    select tc.id_utente,tc.ore_contratti, ( tc.ore_contratti - q.tot_ore_fatte ) as diff_ore
    from
    (
       select id_utente , sum(ore_fatte) as tot_ore_fatte
       from tabella_ore 
      group by id_utente  
    ) as q
    inner join 
    tabella_contratti as tc
    on q.id_utente=tc.id_utente
    Ultima modifica di sspintux; 26-08-2014 a 19:01

  7. #7
    Niente, nessuna di queste, la query da sempre errore

  8. #8
    Quote Originariamente inviata da cinghialotto35 Visualizza il messaggio
    Niente, nessuna di queste, la query da sempre errore
    ... che errore ? .... e che dbms usi ?

  9. #9
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da cinghialotto35 Visualizza il messaggio
    TABELLA ore = Id_utente - ore_fatte
    TABELLA contratti= Id_utente - ore_contratti
    Le proposte postate sono valide, se continua a non funzionare ( oltre a dirci l'errore e dbms )
    dicci anche:

    nella tabella "contratti" il campo id_utente
    - puo avere duplicati ?
    - ha duplicati ?


    .

  10. #10
    utilizzo mysql, nessun duplicato id_utente

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.