Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Query group by con somma di 2 campi delo stesso recordset

    Ho questa tabella:

    nome .| var | prezzo |
    -------------------------
    marco | . A | .. 20 ... |
    marco | . B | .. 15 ... |
    luca .. | . A | .. 10 ... |
    luca .. | . B | .. 20 ... |



    e l'sql dovrebbe restituirmi:


    nome .| prezzoTOT |
    -----------------------
    marco | .... 35 ..... |
    luca .. | .... 30 ..... |

    ho abbozzato una
    codice:
    SELECT nome FROM tabella GROUP BY nome
    ma mi sono bloccato perchè non so come sommare i campi var di marco A + marco B e luca A + luca B
    Ultima modifica di Luca1317; 11-05-2015 a 11:34

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Di che database parliamo?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    access

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    prova
    codice:
    SELECT SUM(prezzo) AS Totale, nome FROM tabella GROUP BY nome

  5. #5
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Quote Originariamente inviata da Vincent.Zeno Visualizza il messaggio
    prova
    codice:
    SELECT SUM(prezzo) AS Totale, nome FROM tabella GROUP BY nome
    Funziona, grazie.

    Come posso fare per ordinarli per ID?

    So che parlare di ordinamento ID in una Group by è un concetto "astratto" ma mi spiego meglio:


    id | nome .| var | prezzo |
    ------------------------------
    1 | marco | . A | .. 20 ... |
    2 | luca .. | . A | .. 10 ... |
    3 | marco | . B | .. 15 ... |
    4 | luca .. | . B | .. 20 ... |

    il valore ID più basso dei 2 records "marco" è 1 mentre quello dei 2 "luca" è 2 quindi vorrei che nell'ordinamento marco anticipasse luca, in questo modo:

    nome .| prezzoTOT |
    -----------------------
    marco | .... 35 ..... |
    luca .. | .... 30 ..... |
    Ultima modifica di Luca1317; 12-05-2015 a 01:43

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    più semplice di quel che può sembrare

    codice:
    SELECT SUM(prezzo) AS Totale, nome, id FROM tabella GROUP BY nome order by id

    edit... no spetta... prende i valori massimi degli id raggruppati
    Ultima modifica di Vincent.Zeno; 12-05-2015 a 14:02

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    non so se access lo prende...

    codice:
    SELECT SUM(prezzo) AS Totale, nome, id FROM tabella GROUP BY nome order by min(id)

  8. #8
    SELECT nome, SUM(prezzo) AS Totale FROM tabella GROUP BY nome order by 2 DESC
    Ultima modifica di optime; 12-05-2015 a 14:27

  9. #9
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Quote Originariamente inviata da optime Visualizza il messaggio
    SELECT nome, SUM(prezzo) AS Totale FROM tabella GROUP BY nome order by 2 DESC
    funziona

    p.s.: ti anticipo... optime!!

  10. #10

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.