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

    [MySql]Query con DISTINCT e SUM

    Ciao a tutti,
    vi spiego il mio problema in un modo, spero, semplice. Di seguito la struttura semplificata della tabella:

    LOAD_CODE | CODICE | PESO | CASSE | MSG

    bene! io devo sommare il PESO e le CASSE con diverso codico e raggrupparli per codice . Quindi la mia query è del tipo:

    SELECT DISTINCT codice,load_code,SUM(peso),SUM(masse),msg GROUP BY codice


    il problema e che quando ho due codici diversi i risultati sono 2 ma viene sommato anche il peso , che dovrebbe essere distinto!!!!!

    avete soluzioni?
    forse questo è pane per piero.mac


    ciao a tutti!

  2. #2
    non so se ho ben capito il problema. Potresti postare un piccolo dump dei dati?

    comunque, ad occhio e croce, se raggruppi per i due campi code?

    codice:
    SELECT codice, load_code, SUM(peso), SUM(masse),msg GROUP BY codice,load_code



    risolvi qualcosa?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    ciao 13manuel84 allora in basso trovi un dump dei dati...
    la riga che trovi evidenziata e quella su sui si verifica il problema, nel senso che:

    1) il cliente è lo stesso
    2) con codice ordine diverso
    ... quindi dovrei avere due righe di quel cliente...rispettivamente uno con il peso 199.7 e l'altro (che ha il codice ordine ugulae) con peso totale 159.59 ,che in totale fa 395.29 ...

    chiaro il problema?


    grazie mille!
    Immagini allegate Immagini allegate

  4. #4
    Originariamente inviato da dinucciarturo
    ciao 13manuel84 allora in basso trovi un dump dei dati...
    la riga che trovi evidenziata e quella su sui si verifica il problema, nel senso che:

    1) il cliente è lo stesso
    2) con codice ordine diverso
    ... quindi dovrei avere due righe di quel cliente...rispettivamente uno con il peso 199.7 e l'altro (che ha il codice ordine ugulae) con peso totale 159.59 ,che in totale fa 395.29 ...

    chiaro il problema?


    grazie mille!
    beh se tu fai la somma del peso raggruppando per codice e load_code otterrai sempre una riga che ti raggruppa i due pesi in uno solo, per averli distinti dovresti raggruppare anche per peso, quindi una cosa del genere:

    codice:
    SELECT codice, load_code, SUM(peso), SUM(masse),msg GROUP BY codice,load_code,peso


    spero possa andar bene!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    mmm... il problema e che ora mi mette tante righe quanti sono i codici con i pesi distinti! mentre io voglio sommare i "pesi" con codici uguali e lasciare fuori dalla somma quelli che hanno codice diverso! capito?



    ti ringrazio!

  6. #6
    scusa una cosa, ma prima dici:
    quindi dovrei avere due righe di quel cliente...rispettivamente uno con il peso 199.7 e l'altro (che ha il codice ordine ugulae) con peso totale 159.59 ,che in totale fa 395.29 ...


    e ora dici

    mentre io voglio sommare i "pesi" con codici uguali e lasciare fuori dalla somma quelli che hanno codice diverso!


    che sono due cose diverse...

    con la seconda query che ho scritto ottieni tante righe quanti sono i pesi diversi per ogni codice, con la prima ottieni la somma dei pesi, dove il codice è lo stesso.

    volendo puoi raggruppare per cliente
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    il probelama è proprio quello che dici, dovrebbe sommarmi tutti i "pesi" che hanno codice uguale ma così non va! quindi ho fatto GROUP BY codice, che dovrebbe raggrupparmi tutti i codici uguali
    il problema è che io ho 5 righe con codice uguale (dello stesso cliente e quindi devo sommare i pesi) e poi ho una riga con codice diverso (che ovviamente non deve sommarmelo con quello precedente!) ok?



    grazie per la pazienza!

  8. #8
    boh forse devi aspettare devvero piero.mac

    io ho fatto una prova:
    codice:
    SELECT `CODICE` , ` LOAD_CODE` , SUM( `PESO` ) AS PESO_TOT, SUM( `CASSE` ) AS CASSE_TOT
    FROM `tbl`
    GROUP BY `CODICE` , ` LOAD_CODE`
    su una tabella che mi sono creato; di cui ti posto il dump:
    codice:
    -- 
    -- Struttura della tabella `tbl`
    -- 
    
    CREATE TABLE `tbl` (
      `ID` smallint(5) unsigned NOT NULL auto_increment,
      ` LOAD_CODE` varchar(50) default NULL,
      `CODICE` varchar(50) default NULL,
      `PESO` double unsigned NOT NULL default '0',
      `CASSE` smallint(5) unsigned NOT NULL default '0',
      PRIMARY KEY  (`ID`)
    ) TYPE=MyISAM AUTO_INCREMENT=7 ;
    
    -- 
    -- Dump dei dati per la tabella `tbl`
    -- 
    
    INSERT INTO `tbl` (`ID`, ` LOAD_CODE`, `CODICE`, `PESO`, `CASSE`) 
    VALUES (1, 'qwerty1', 'pippo1', 15.9, 2),
    (2, 'qwerty1', 'pippo1', 18, 6),
    (3, 'qwerty2', 'pippo2', 9.5, 9),
    (4, 'qwerty2', 'pippo2', 10, 1),
    (5, 'qwerty1', 'pippo3', 1.5, 2),
    (6, 'qwerty2', 'pippo4', 15.2, 3);
    e il risultato che ottengo, in figura, mi sembra quello che vuoi ottenere tu...no?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    ho dimenticato l'allegato
    Immagini allegate Immagini allegate
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.