Salve a tutti,
Problemino con la somma dei valori da tabelle in access (spero che la spiegazione sia abbastanza chiara).
Nella pagina protetta del cliente devo far vedere la sua situazione contabile, esattamente quanto ha pagato, il valore dei preventivi inviati, e il saldo. Mi ritrovo quindi più tabelle concatenate fra loro e creare due somme che asua volta devono essere sommate fra loro.
io ho fatto cosi:
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT SUM(costo) AS Totale, SUM(ImportoPagamento) AS Totalep, Utenti.Paese, immagine, NomeSocietà, NomeContatto, CognomeContatto, IndirizzoFatturazione, Città, StatoOProvincia, dare, aver' e, contratto, Utenti.id"
SQL = SQL & " FROM [inviipreventivi],[Pagamenti],[Utenti],[Contatti]"
SQL = SQL & " where username = '" & session("username") &"' and inviipreventivi.id = Utenti.ID and inviipreventivi.idContatto = Contatti.ID "
SQL = SQL & " and Pagamenti.IDCliente = Utenti.ID "
SQL = SQL & " GROUP BY costo, ImportoPagamento, Utenti.Paese, immagine, NomeSocietà, NomeContatto, CognomeContatto, IndirizzoFatturazione, Città, StatoOProvincia, dare, avere, contratto, Utenti.i' d"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
e funziona però mi da valori sballati ed esattamente la prima somma la moltiplica per la somma dei record del TotaleP
e la seconda somma la moltiplica per il totale dei record dl Totale.
per essere più chiaro:
il cliente ha fatto 3 pagamenti per un totale di ?.400
e ha ricevuto 15 preventivi per un totale di ?. 300
il risultato che ottengo è:
somma dei pagamenti (400 x 15)
somma preventivi (300 x 3)
la differenza tra pagamenti e preventivi la esegue correttamente
Strano vero!!!
Ho modificato inserendo una sola somma per ogni RecSet e funziona ma il problema e che chiudendo il RecSet per avere poi la differenza non ho più i dati.
e cioè:
<td width="693"><p align="center"> <font size="3" face="Verdana"><b><i>Situazione Contabile:</i></b></font></p>
<%
RecSet.Close
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT SUM(ImportoPagamento) AS Totalep FROM [Pagamenti],[Utenti] where username = '" & session("username") &"' and Pagamenti.IDCliente = Utenti.ID"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
%>
<p align="center"><font size="3" face="Verdana"><b><i>importi versati: ?. <%=RecSet("Totalep")%></i></b></font></p>
<%
RecSet.Close
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT SUM(costo) AS Totale FROM [inviipreventivi],[Utenti],[Contatti] where username = '" & session("username") &"' and inviipreventivi.id = Utenti.ID and inviipreventivi.idContatto = Contatti.ID"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
%>
<p align="center"><font size="3" face="Verdana"><b><i>importi di preventivi
ricevuti: ?. <%=RecSet("Totale")%></i></b></font></p>
<p align="center"><font size="3" face="Verdana"><b><i>saldo: ?. <%
n1= RecSet("Totalep")
n2= RecSet("Totale")
' =Response.Write(IsNumeric("dare")+IsNumeric("avere"))
Response.Write (n1-n2)
%></i></b></font></p>
Qualcuno di Voi saprebbe aiutarmi (se avete capito qualcosa) in tutto questo casino.