Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

suportetecnicojunior

[Resolvido] Somar Variáveis Coluna

Recommended Posts

Como faço para somar os totais da coluna de uma tabela dinâmica?

Segue o código:

<!--#include file="conexao.asp" -->
<%
cliente = Request.QueryString("cod")

servico = "SELECT * FROM tb_os WHERE id_cliente = '" &cliente& "'"
SET RStipo = CONEXAO.EXECUTE(servico)
If not RStipo.EOF Then
servico = RStipo.Fields("id_cliente")

NOS = RStipo.Fields("cod")

Set RSserv = CONEXAO.Execute("SELECT * FROM tb_os_vendas WHERE cod_os ='"&NOS&"' AND tipo = 'Serviços'")
Set RSprod = CONEXAO.Execute("SELECT * FROM tb_os_vendas WHERE cod_os ='"&NOS&"' AND tipo = 'Produtos'")

'Response.Write(SQL)
'Response.Write("<br />")
'Response.Write("<br />")
%>
<p>Ordem de serviço: <%Response.Write(NOS)%></p>
<table width="100%">
<thead>
         <tr align="left">
            <th width="5%">Código</th>
            <th width="45%">Descrição</th>
            <th width="10%">Tipo</th>
           <th width="5%">Quantidade</th>
           <th width="10%">Unitário</th>
           <th width="15%">Total</th>
         </tr>
</thead>
		<tbody><tr><td>Serviços</td></tr>
			<tr>
<%Do While Not RSserv.EOF

cod_item = RSserv.Fields("cod_item")
SQLs = "SELECT * FROM tb_servico WHERE cod_serv ="&cod_item
SET OSs = Server.CreateObject("Adodb.recordset")
OSs.Open SQLs, CONEXAO
%>            
				<td><%=OSs.Fields("cod_serv")%></td> 
                <td><%=OSs.Fields("desc_serv")%></td> 
			    <td><%=RSserv.Fields("tipo")%></td>
                <td><%=RSserv.Fields("quantidade")%></td>
                <td><%=OSs.Fields("valor_serv")%></td>
                <td><%Response.Write(OSs("valor_serv") * RSserv("quantidade"))%></td> 
		  </tr> 
<%
RSserv.MoveNext
Loop			  
%>
		</tbody>
		<tbody><tr><td>Produtos</td></tr>
			<tr>
<%Do While Not RSprod.EOF

cod_item = RSprod.Fields("cod_item")
SQLp = "SELECT * FROM tb_produtos WHERE cod_prod ="&cod_item
SET OSp = Server.CreateObject("Adodb.recordset")
OSp.Open SQLp, CONEXAO
%>            
				<td><%=OSp.Fields("cod_prod")%></td> 
                <td><%=OSp.Fields("desc_prod")%></td> 
			    <td><%=RSprod.Fields("tipo")%></td>
                <td><%=RSprod.Fields("quantidade")%></td>
                <td><%=OSp.Fields("valor_prod")%></td>
                <td><%Response.Write(OSp("valor_prod") * RSprod("quantidade"))%></td> 
		  </tr> 
<%
RSprod.MoveNext
Loop			  
%>
		</tbody>        
<tr>
<td colspan="4" align="right">Total Serviços</td>
<td align="right"><%Response.Write("FALTA SCRIPT")%></td>
</tr>
<tr>
<td colspan="4" align="right">Total Produtos</td>
<td align="right"><%Response.Write("FALTA SCRIPT")%></td>
</tr>
<tr>
<td colspan="4" align="right">Total Geral</td>
<td align="right"><%Response.Write("FALTA SCRIPT")%></td>
</tr>
</table>
<%
RSserv.close
RSprod.close
CONEXAO.close
Else
Response.Write("Nenhuma Ordem de Serviço Encontrada.")
End If
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar a função SUM do SQL e fazer direto na string SQL, A função SUM () retorna a soma total de uma coluna numérica.

 

 

SELECT SUM(nome_coluna) as total FROM table_name

Compartilhar este post


Link para o post
Compartilhar em outros sites

você fazendo direto na SQL , existe um ganho de performance, lógico que vai depender do bd e como esta sua estrutura, mas eu sempre faço asim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos, resolvido assim...

<%
If not RSserv.EOF Then
%>
                <table><tr><td> </td>
                    <td><div align="left"><em>
              <% = RSserv("tipo")%>
            </em></div></td>
                    <td> </td>
                    <td> </td>
                    <td> </td>
                    <td> </td>
                    <td> </td>
                </tr>
                        <tr>
<%
Do While Not RSserv.EOF

cod_item = RSserv("cod_item")
SQLs = "SELECT * FROM tb_servico WHERE cod_serv ="&cod_item
SET OSs = Server.CreateObject("Adodb.recordset")
OSs.Open SQLs, CONEXAO
%>        
                          <td><div align="left">
                            <% = OSs("cod_serv")%>
                      </div></td>         
                                <td colspan="3"><% = OSs("desc_serv")%>                           <div align="center"></div></td> 
                <td><div align="center"><% = RSserv("quantidade")%></div></td>
                <td><div align="right"><% =  formatcurrency(OSs("valor_serv"))%></div></td>
                <%totalservico = totalservico + (OSs("valor_serv") * RSserv("quantidade"))%>
              <td><div align="right">
                <%Response.Write formatcurrency(OSs("valor_serv") * RSserv("quantidade"))%>
              </div>              </td> 
                  </tr> 
<%
RSserv.MoveNext
Loop
End If                    
%>
                </tbody>
<%
If not RSprod.EOF Then
%>
                <tbody><tr><td> </td>
                    <td><div align="left"><em>
              <% = RSprod("tipo")%>
            </em></div></td>
                    <td> </td>
                    <td> </td>
                    <td> </td>
                    <td> </td>
                    <td> </td>
                </tr>
<%
Do While Not RSprod.EOF

cod_item = RSprod("cod_item")
SQLp = "SELECT * FROM tb_produtos WHERE cod_prod ="&cod_item
SET OSp = Server.CreateObject("Adodb.recordset")
OSp.Open SQLp, CONEXAO
%>             
                        <tr>
                          <td><div align="left">
                            <% = OSp("cod_prod")%>
                      </div></td>           
                                <td colspan="3"><% = OSp("desc_prod")%>                           <div align="center"></div></td> 
                <td><div align="center"><% = RSprod("quantidade")%></div></td>
                <td><div align="right"><% =  formatcurrency (OSp("valor_prod"))%></div></td>
                <%totalproduto = totalproduto + (OSp("valor_prod") * RSprod("quantidade"))%>
              <td><div align="right">
                <%Response.Write formatcurrency(OSp("valor_prod") * RSprod("quantidade"))%>
              </div></td> 
                  </tr> 
<%
RSprod.MoveNext
Loop
End If
%>
                </tbody>        

<tr><td colspan="7" background="img/line.jpg" style="background-repeat:repeat-x"> </td></tr>
<tr>
<td colspan="3">Observações:</td>
<td colspan="3"><div align="right">Subtotal Serviços:</div></td>
<td align="right"><%Response.Write formatcurrency(totalservico)%></td>
</tr>
<tr>
  <td colspan="3" rowspan="4" align="left" valign="top"><div align="justify"></div></td>
  <td colspan="3"><div align="right">Subtotal Produtos:</div></td>
<td align="right"><%Response.Write formatcurrency(totalproduto)%></td>
</tr>
<tr>
  <td colspan="3"><div align="right">Subtotal da Ordem de Serviço</div></td>
  <td align="right">
<%
total = totalservico + totalproduto
Response.Write formatcurrency(total)
%></td>
</tr>

</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.