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

    Media valori se presenti

    Salve amici,

    ho un database di prodotti in cui non c'è solo il classico campo PREZZO ma ce ne sono altri 4:
    PREZZO, PREZZO1, PREZZO2, PREZZO3, PREZZO4

    questo perchè vorrei che il prezzo risultante fosse la media dei prezzi inseriti, ovviamente se inseriti!

    Avevo pensato semplicemente di fare la somma dei 5 campi e poi dividere per 5... ma se un campo è uguale a 0 poi mi sballa la media.... come potrei fare?
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  2. #2
    Anche quello uguale a zero partecipa alla media...

  3. #3
    Originariamente inviato da Mems
    Anche quello uguale a zero partecipa alla media...
    depende

  4. #4

    ho risolto

    Allora ho risolto così, in modo un po architettoso!

    codice:
    MEDIA = (carrello.Fields.Item("PREZZO").Value)
    TOT = 1
    if (carrello.Fields.Item("PREZZO1").Value) <> "0" then
    MEDIA = MEDIA + (carrello.Fields.Item("PREZZO1").Value)
    TOT = TOT + 1
    end if
    if (carrello.Fields.Item("PREZZO2").Value) <> "0" then
    MEDIA = MEDIA + (carrello.Fields.Item("PREZZO2").Value)
    TOT = TOT + 1
    end if
    if (carrello.Fields.Item("PREZZO3").Value) <> "0" then
    MEDIA = MEDIA + (carrello.Fields.Item("PREZZO3").Value)
    TOT = TOT + 1
    end if
    if (carrello.Fields.Item("PREZZO4").Value) <> "0" then
    MEDIA = MEDIA + (carrello.Fields.Item("PREZZO4").Value)
    TOT = TOT + 1
    end if
    PREZZOMEDIO = MEDIA / TOT
    PRICE = PREZZOMEDIO+(PREZZOMEDIO*PERCENTUALE)
    response.Write("<p class=""prezzo"">"&FormatCurrency(PRICE, 2, -2, -2, -2)&"</p>")
    qualche suggerimento per snellire?
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  5. #5
    non per snellire, ma per renderlo più sicuro. controlla anche il vuoto, oltre allo zero.

    potresti inoltre pensare ad una funzioncina

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    select avg(somma) as media from (
    select sum(prezzo) as somma from tabella where prezzo is not null and prezzo > 0
    union
    select sum(prezzo1) as somma from tabella where prezzo1 is not null and prezzo1 > 0
    union
    select sum(prezzo2) as somma from tabella where prezzo2 is not null and prezzo2 > 0
    union
    select sum(prezzo3) as somma from tabella where prezzo3 is not null and prezzo3 > 0
    union
    select sum(prezzo4) as somma from tabella where prezzo4 is not null and prezzo4 > 0
    )


    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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 © 2026 vBulletin Solutions, Inc. All rights reserved.