Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [mysql] somma

  1. #1

    [mysql] somma

    ciao

    ho una tabella con questi dati

    id_articolo | prezzo | quantita

    in queste righe ci possono essere id_articoli uguali ma prezzi e quantità differenti.

    es

    1 | 210.00 | 2
    2 | 11.00 | 4
    1 | 340.00 | 6

    in praica le somme sarebbero
    articolo : 1
    prezzo tot: 2460.00 ((210*2)+(340*6))
    quantita : 8 (2+6)

    articolo : 2
    prezzo tot: 44.00
    quantita : 4


    Come faccio?? Sto impazzendo

    ho provato a fare una selct ma se non faccio un GROUP BY id_articoli mi mostra tutte le righe e io volevo un riassunto come sopra. se non lo faccio, non mi fa le somme.... HELP!!! VVoVe:

  2. #2
    prova:

    codice:
    SELECT id_articolo, prezzo, 
    SUM(quantita) as num, 
    count(id_articolo) as id
    from calcoli 
    group by id_articolo
    Poi quando estrai i dati bastera' moltiplicare prezzo * num
    codice:
    $totale_prezzo = $row['prezzo'] * $row['num'];
    $totale_ordini = $row'[id'];

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    eh...

    ache io pensavo cosi...

    il problema è che cosi fa la moltiplicazione del primo prezzo che trova con l'intera quantità...

    cioè riprendendo l'esempio di prima

    1 | 210.00 | 2
    2 | 11.00 | 4
    1 | 340.00 | 6

    in questa maniera fa:

    210*8 non 210*2+340*6...


  4. #4
    Originariamente inviato da albertogianotti
    eh...

    ache io pensavo cosi...

    il problema è che cosi fa la moltiplicazione del primo prezzo che trova con l'intera quantità...

    cioè riprendendo l'esempio di prima

    1 | 210.00 | 2
    2 | 11.00 | 4
    1 | 340.00 | 6

    in questa maniera fa:

    210*8 non 210*2+340*6...

    Non ho capito il problema allora.

    Scusa se id_articolo identifica un articolo.... come puo' avere prezzi diversi????? Ero partito da questo principio. In sostanza, la logica direbbe che caso mai l'id non e' del prodotto ma dell'acquirente.....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    no no,

    funziona cosi:

    un articolo 'maglietta' parte con un prezzo. es 20 euro.

    poi l'amministratore del negozio puo decidere di dare un prezzo diverso per quella maglietta di un ordine specifico.

    cioè:

    id_ordine | id_articolo | prezzo | quantita

    1 | 1 | 20 | 3
    1 | 2 | 30 | 4
    2 | 1 | 10 | 5

    l'ordine 1 ha 2 righe (2 articoli: 1 e 2) che costano 20 e 30 euro.
    l'ordine 2 ha 1 riga (articolo 1) che però costa 10 euro perche l'amministratore ha visto l'ordine e ha deciso di fare uno sconto a quella riga di quell'ordine.

    ...

  6. #6
    In questo caso non puoi fare il group by, perche devi calcolare sulla stessa riga. Il group by preleva la prima che incontra e stop.

    Raggruppando poi si presume che il dato sia omogeneo. Quindi puoi sommare i prezzi (colonna), ma non moltiplicarli (riga), oppure moltiplichi riga per riga, e ordini per id_articolo oppure id_ordine a seconda di che ti serve.

    Le varie somme le farai in php ... anche perche' una miscellanea di prezzi presuppone una distinta, con prezzo e quantita' oppure il tipo non sapra' mai che sta' facendo.

    Con una if controlli l'id che ricevi e definisci se appartiene ad una lista oppure ad un'altra.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    mi sa che l'unica cosa è fare 2 query:

    la prima che seleziona tutto raggruppato per articoli:
    cosi seleziono l'id articolo.
    e poi una query che fa la somma e la moltiplicazione di tutte le righe WHERE id_articolo = all'id articolo che ho preso prima...

    è un po bruttino ma è l'unica soluzione che vedo per ora...

    grazie ciao

  8. #8
    secondo me devi per forza fare 2 query, una che estrae gli articoli e l'altra (nel ciclo while) che ne estrae prezzi e quantità.

    ciao

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.