15 messaggi dal 12 luglio 2005
Ciao a tutti, ho una serie di valori con la virgola e non, contenuti in un campo varchar.
Vorrei fare la somma di questi valori con SELECT SUM, però questo si può usare solo per i campi di numeri, infatti usandolo così il risultato non è corretto.
Come potrei fare.
Grazie

Marco
37 messaggi dal 12 ottobre 2005
estrarre il valore del campo, separare i valori(con una Mid per esempio), fare il casting da varchar a double e sommare quello che ti serve. tutto questo con asp (non so se puoi farlo con una store procedure)
15 messaggi dal 12 luglio 2005
TI RINGRAZIO,
però detto così, data la mia non perfetta conoscenza di asp,
è un po' difficile.
Questo è il mio script :

Set rs7 = Server.CreateObject("ADODB.Recordset")
strSql_S="SELECT SUM(prezzo_scontato) AS somma FROM fattura WHERE codice_prodotto = '"& codic &"' AND data_fattura >= '"& data_dal &"' AND data_fattura <= '"& data_al &"' "

rs7.Open strSql_S, conn, 1, 1

Non è che mi puoi fare degli esempi o dare qualche altro suggerimento, grazie
37 messaggi dal 12 ottobre 2005
se prezzo_scontato è un varchar:

strsql="select prezzo_scontato from ecc ecc"

rs.open strsql,conn,3,3

cosa contiene prezzo scontato??
se contiene un solo numero

while not rs.eof
sum_prezzo=sum_prezzo+clng(rs("prezzo_scontato"))
rs.movenext
loop
in questo modo hai fatto casting da varchar a long
15 messaggi dal 12 luglio 2005
ok, però sicome sono all'interno di altri do wile,
il valore mi viene molto più grande, come potrei fare?
37 messaggi dal 12 ottobre 2005
molto più grande di cosa??
15 messaggi dal 12 luglio 2005
Allora se io faccio val_to= val_to + Cdbl(rs4("prezzo_scontato"))

supponendo che i prezzi scontati siano 2,30 + 10,2 + 1, 22 ecc ottengo valori del tipo 62,234 ecc cioè non corretti anche se andando a guardare le somme parziali, sono giuste, però aumentate di circa 61.
Ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
guarda che puoi usare comunque il SUM, ti basta convertire al volo il valore varchar in numerico con una funzione di casting.

Se usi access:
SELECT SUM(Cdbl(campovarchar)) FROM Tabella

Se usi MSSQL:
SELECT SUM(CAST(campovarchar AS Numeric)) FROM Tabella

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.