Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: sql sum function

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    654

    sql sum function

    salve a tutti

    ho una tabella di questo tipo

    id ---- nome ---- punti
    1------giorgio----2
    2------marco----1
    3------fabio------6
    4------stefano----2
    5------silvio----2


    SELECT SUM(punti), nome
    FROM Tbl_Nomi
    Group by nome
    Having SUM(punti) = 6

    restituisce

    6 ----- fabio


    è possibile invece fare una select che recuperi solo i record la cui somma = n ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    654
    Senza usare la funzione sql sum ho provato anche in questa maniera:

    supponiamo di voler recuperare le coppie di Nomi con somma = n

    SELECT distinct tbl_Nomi.Punti, tbl_Nomi_1.Punti
    FROM tbl_Nomi, tbl_Nomi AS tbl_Nomi_1 where tbl_Nomi.Punti + tbl_Nomi_1.Punti = [@n] ;

    per n = 6 ho


    tbl_Nomi.Punti---- tbl_Nomi_1.Punti
    1------- 5
    2------- 4
    3------- 3
    4------- 2
    5------- 1

    dovrei a questo punto però poter eliminare una delle combinazioni di numeri disposti solo diversamente, in questo caso il primo e l'ultimo (1-5 e 5-1) e il secondo con il quarto (2-4 e 4-2)

    ma come ?

  3. #3

    Re: sql sum function

    Originariamente inviato da scura
    SELECT SUM(punti), nome
    FROM Tbl_Nomi
    Group by nome
    Having SUM(punti) = 6

    restituisce

    6 ----- fabio


    è possibile invece fare una select che recuperi solo i record la cui somma = n ?
    sql = "SELECT SUM(punti), nome
    FROM Tbl_Nomi
    Group by nome
    Having SUM(punti) = " & n

    SLT?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    654
    Intanto grazie 1000 per la risposta, stavo perdendo le speranze di condividere con qualcuno il mio ragionamento...

    Group by nome non deve essereci....

    mi servirebbe trovare tutte le combinazioni (es. coppie di nomi ) la cui somma di punti è = n senza raggrupparli nè per nome nè per altra voce.

    l'es. che mi hai indicato è identico al mio punto di partenza solo che hai parametrizzato 6 ... era un es. 6.

    ho provato a cambiare strategia facendo una self join e sono andata vicino al risultato, ottendo tutte le coppie di record la cui somma è [@n] solo che come indicavo sopra ho anche le coppie di record che differiscono solo per l'ordine

  5. #5
    allora non ho capito cosa ti serve... fa' un esempio

  6. #6
    con quale db stai lavorando?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    654
    Allora, sono in fase di studio , ovvio meglio db mssql di access, ma mi interessa per entrambi.

    L'esempio di sopra è solo un es. forse è difficile capire perchè ha poco senso l'es. con i nomi. Faccio un es. con delle scatole che mi sembra abbia più senso


    id ---- nome_scatola ---- n_articoli_x_scatola

    1------scatola A----------5
    2------scatola B----------4
    3------scatola C----------3
    4------scatola D----------2
    5------scatola E----------1

    Dovendo confezionare [@n] articoli mi serve sapere quali combinazioni di scatole posso usare (per semplificare la cosa sono partita con un discorso di coppie di scatole ). Quindi dovrei fare una query che selezioni dal db le coppie di scatole da usare per confezionare n articoli ad es. 6

  8. #8
    allora, con la self join di cui parlavi prima riesci (l'avrai fatto con la somma di articoliXscatola della tab1 sommato a articoliXscatola della tab2).

    adesso devi eliminare le coppie che si ripetono, giusto?

    di 5+1 e 1+5 deve rimanerne solo una, corretto?

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    654
    Esattamente Optime ... ma come ???

  10. #10
    puoi postare la stringa SQL che usi adesso?

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.