Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [MYSQL] SUM su query incasinata

    Ciao a tutti, ho questa query:

    SELECT operatori.nome as nome_operatore,
    operatori.cognome as cognome_operatore,
    id_operatore AS codice_operatore,
    utenti.nome as nome_utente,
    utenti.cognome as cognome_utente,
    id_utente as codice_utente,
    interventi.id as num_intervento,
    (ABS(((HOUR(fine)-HOUR(inizio))*60)-(MINUTE(fine)-MINUTE(inizio))) ) as solo_intervento,
    trasporto,
    (ABS(((HOUR(fine)-HOUR(inizio))*60)-(MINUTE(fine)-MINUTE(inizio))) +trasporto) as tempo_totale

    FROM interventi
    LEFT JOIN utenti ON
    interventi.id_utente=utenti.id
    LEFT JOIN operatori ON
    operatori.id=interventi.id_operatore
    ORDER BY id_utente


    Vorrei utilizzare l'operatore SUM() sulle colonne 'solo_intervento', 'trasporto', 'tempo_totale'. Ho provato ma non ce la faccio, ho messo anche GROUP BY, ma nisba

    Mi date una mano?
    ~~{Rigo}~~

  2. #2
    è proprio incasinata...

    come hai provato sum?

  3. #3
    SELECT operatori.nome as nome_operatore,
    operatori.cognome as cognome_operatore,
    id_operatore AS codice_operatore,
    utenti.nome as nome_utente,
    utenti.cognome as cognome_utente,
    id_utente as codice_utente,
    interventi.id as num_intervento,
    SUM( (ABS(((HOUR(fine)-HOUR(inizio))*60)-(MINUTE(fine)-MINUTE(inizio))) ) )as solo_intervento,
    SUM (trasporto),
    SUM( (ABS(((HOUR(fine)-HOUR(inizio))*60)-(MINUTE(fine)-MINUTE(inizio))) +trasporto) )as tempo_totale

    FROM interventi
    LEFT JOIN utenti ON
    interventi.id_utente=utenti.id
    LEFT JOIN operatori ON
    operatori.id=interventi.id_operatore
    GROUP BY id_utente

    ho messo SUM e i campi che voglio sommare tra parentesi e ho cambiato ORDER BY in GROUP BY
    ~~{Rigo}~~

  4. #4
    non vedo bene il sum con altre operazioni dentro,
    ti conviene fare i calcoli e le somme su questi dopo avere estratto i dati, mi pare più semplice.

    ps: senza group by

  5. #5

    Ripropongo la query....

    SELECT operatori.nome as nome_operatore,
    operatori.cognome as cognome_operatore,
    id_operatore AS codice_operatore,
    utenti.nome as nome_utente,
    utenti.cognome as cognome_utente,
    id_utente as codice_utente,
    interventi.id as num_intervento,
    SUM ( (ABS(((HOUR(fine)-HOUR(inizio))*60)-(MINUTE(fine)-MINUTE(inizio))) ) ) as solo_intervento,
    SUM (trasporto) ,
    SUM ( (ABS(((HOUR(fine)-HOUR(inizio))*60)-(MINUTE(fine)-MINUTE(inizio))) +trasporto) ) as tempo_totale

    FROM interventi
    LEFT JOIN utenti ON
    interventi.id_utente=utenti.id
    LEFT JOIN operatori ON
    operatori.id=interventi.id_operatore
    GROUP BY id_utente
    ~~{Rigo}~~

  6. #6

    risolto

    bastava togliere gli spazi dalle parentesi... cacchio
    ~~{Rigo}~~

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 © 2024 vBulletin Solutions, Inc. All rights reserved.