Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    9

    [mysql] sum + variabile

    Questa è la query:
    SET @somma=0;
    SELECT
    depositi.id,
    depositi.articolo,
    depositi.quantity AS quantity,
    depositi.carton_nr AS carton_nr,
    (@somma := @somma + quantity)AS conteggio
    FROM
    depositi

    NB. il campo conteggio mi deve sommare le quantità degli articoli per cartone. Non posso fare un sum group by per articolo perchè voglio avere il mio report con visibili le singole quantità.

    e questi i records:
    id | articolo | quantity | carton_nr | conteggio
    1 |CS7520A000.10 | 720 | 92P14H7029 | 720
    2 |CS7520A000.10 | 12 | 92P15H3022 | 732
    3 |CS7520A025.10 | 120 | 92P14H7029 | 852
    4 |CS7520A025.10 | 57 | 92P15H3022 | 909
    5 |CS7520A050.10 | 120 | 92P14H7029 | 1029
    6 |CS7520A050.10 | 63 | 92P15H3022 | 1092

    come posso azzerare la variabile @somma per far ripartire il conteggio quando cambia l'articolo (es. dopo id 2 ho un articolo nuovo ed il conteggio dovrebbe ripartire con 120).
    Se è possibile.
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    visto che posti una nuova domanda,....la precedente l'hai risolta?

    http://forum.html.it/forum/showthrea...5#post25221645

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Quote Originariamente inviata da zico Visualizza il messaggio
    Questa è la query:
    SET @somma=0;
    SELECT
    depositi.id,
    depositi.articolo,
    depositi.quantity AS quantity,
    depositi.carton_nr AS carton_nr,
    (@somma := @somma + quantity)AS conteggio
    FROM
    depositi

    NB. il campo conteggio mi deve sommare le quantità degli articoli per cartone. Non posso fare un sum group by per articolo perchè voglio avere il mio report con visibili le singole quantità.

    e questi i records:
    id | articolo | quantity | carton_nr | conteggio
    1 |CS7520A000.10 | 720 | 92P14H7029 | 720
    2 |CS7520A000.10 | 12 | 92P15H3022 | 732
    3 |CS7520A025.10 | 120 | 92P14H7029 | 852
    4 |CS7520A025.10 | 57 | 92P15H3022 | 909
    5 |CS7520A050.10 | 120 | 92P14H7029 | 1029
    6 |CS7520A050.10 | 63 | 92P15H3022 | 1092

    come posso azzerare la variabile @somma per far ripartire il conteggio quando cambia l'articolo (es. dopo id 2 ho un articolo nuovo ed il conteggio dovrebbe ripartire con 120).
    Se è possibile.
    Grazie in anticipo
    e se raggruppi x cartone + articolo?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    9
    No non mi funzia, ho bisogno di vedere la sequenza di cartoni con la somma (incrementale: cartone 1 + cartone 2) perchè una volta superata una soglia (es. quantita 800) io sappia quali cartoni (attraverso carton_nr) devo movimentare.
    Non so se sia fattibile solo con Mysql forse dovrò integrare qualcosa con php.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    non mi è chiaro l'output che vuoi. fai un esempio

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    9
    id | articolo | quantity | carton_nr | conteggio
    1 |CS7520A000.10 | 720 | 92P14H7029 | 720 <-- inizio conteggio articolo
    2 |CS7520A000.10 | 12 | 92P15H3022 | 732 <--- fine conteggio articolo
    3 |CS7520A025.10 | 120 | 92P14H7029 | 120 <-- inizio conteggio nuovo articolo
    4 |CS7520A025.10 | 57 | 92P15H3022 | 177 <--fine conteggio nuovo articolo
    5 |CS7520A050.10 | 120 | 92P14H7029 | 120 <-- e così per tutti gli articoli
    6 |CS7520A050.10 | 63 | 92P15H3022 | 183
    Questo è il tipo di output che cerco.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    codice:
    SELECT
    depositi.id,
    depositi.articolo,
    depositi.quantity AS quantity,
    depositi.carton_nr AS carton_nr,
    (select sum(d2.quantity) from depositi d2 where d2.articolo= depositi.articolo and d2.id<=depositi.id) as conteggio
    FROM depositi
    order by
    depositi.articolo,
    depositi.id
    Ultima modifica di 123delphi321; 12-06-2014 a 09:39

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    9
    Sei un grandissimo...funziona ma spiegami hai creato un tabella alias (d2) giusto?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    d2 è un 'alias' della stessa tabella depositi. nella select inserita hai bisogno di passare dei parametri come

    d2.articolo= depositi.articolo and d2.id<=depositi.id

    per questo motivo ho dovuto indicare uno nome diverso di tabella

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.