Ir para conteúdo

POWERED BY:

Arquivado

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

santind2

Pivot asp

Recommended Posts

Boa tarde pessoal..

 

Estou com uma questão um pouco chata de resolver.

Já dei uma lida sobre pivot mais não entendi nada ainda.

Nisso, tenho algumas informações vindas do banco. Recebo os valores e jogo em uma tabela para exportar em xls.

Até ai tudo bem, só que como são vários vendedores que podem ser selecionados de uma só vez, o resultado vem da seguinte maneira.

 

Vendedor: Vendedor1

nome_produto: cama

Vendedor: Vendedor1

nome_produto: sofá

Vendedor: Vendedor2

nome_produto: geladeira

Vendedor: Vendedor3

nome_produto: tv

 

Só que preciso que ela venha mais organizada da seguinte maneiro.

 

 

Vendedor: Vendedor1

nome_produto: cama

nome_produto: sofá

 

Vendedor: Vendedor2

nome_produto: geladeira

 

Vendedor: Vendedor3

nome_produto: tv

 

Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se usar select distinct pelo vendedor, crie um loop no resultado e dentro desse loop um novo select usando o como parametro no where o id, ou nome do vendedor para exibir os produtos vendidos por ele, pode ser que resolva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você agrupar os dados referente a cada vendedor, use o group by e order by

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi pessoal..

Valeu pela dica.Fiz aqui e até que agrupou legal, porém o arquivo excel continua vindo assim.

 

Vendedor: TESTE DANIEL

Cert | Nome Cliente | Descrição | Valor | Tempo | Data Venda | Data Canc.

00000000047 | CLIENTE NOVO | FOGÃO COOKTOP À GÁS | R$ 34,75 | 12 meses | 12/07/2012 |

 

Vendedor: TESTE DANIEL

Cert | Nome Cliente | Descrição | Valor | Tempo | Data Venda | Data Canc.

00000000054 | DANIEL | COND. DE AR CONVEN. | R$ 61,69 | 12 meses | 12/07/2012

 

------------

NO caso precisava que ele ficasse assim para cada vendedor que tiver isso quando selecionasse todos.

Vendedor: TESTE DANIEL

Cert | Nome Cliente | Descrição | Valor | Tempo | Data Venda | Data Canc.

00000000047 | CLIENTE NOVO | FOGÃO COOKTOP À GÁS | R$ 34,75 | 12 meses | 12/07/2012 |

00000000054 | DANIEL | COND. DE AR CONVEN. | R$ 61,69 | 12 meses | 12/07/2012

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta sua string SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou passando o meu código para vcs verem como ele está..

   'variaveis
   dim Nivel, IdUsuario, Estipulante, Pdv, Vendedor, tipo

   'Nivel de Acesso
    Nivel = Request("mais_garantia")("intIdNivelAcesso")

   'Recebe valores
   if Request.QueryString("cbxEstipulante") <> "0" then Estipulante = Request.QueryString("cbxEstipulante") else Estipulante = "0" end if
   if Request.QueryString("cbxPdv")         <> "0" then Pdv = Request.QueryString("cbxPdv") else Pdv = "0" end if
   if Request.QueryString("cbxVendedor")    <> "0" then Vendedor = Request.QueryString("cbxVendedor") else Vendedor = "0" end if


   'Nivel de Acesso
   Nivel = Request("mais_garantia")("intIdNivelAcesso")
   idUsuario = Request("mais_garantia")("intIdUsuario")

   Response.ContentType = "application/vnd.ms-excel"
   Response.AddHeader "Content-Disposition", "attachment;filename=Planilha.xls" 
   'Response.End
%>
<style>
.titulo_fale{
font-family: Verdana;
font-size: 11px;
color: #000;
font-weight:200;
padding-top:;
padding-bottom:7px;

}
</style>
<form  method="post" name="formulario"/>
 <table width="100%"  border="1" cellpadding="0" cellspacing="0">
   <tbody>
<%

   'Selecionar todas as informaçãos para preencher a tabela

   sqlVendas = "SELECT distinct a.nm_cliente, a.id_cliente, a.id_venda, "
   sqlVendas = sqlVendas & " b.id_venda, b.id_cliente, b.id_produto, b.id_estipulante, b.id_pdv, "
   sqlVendas = sqlVendas & " b.id_usuario_orcamento, b.id_usuario_proposta, "
   sqlVendas = sqlVendas & " CONVERT(VARCHAR,a.dt_inclusao,103) AS data_inicio, b.vl_premio, b.num_certificado, CONVERT(VARCHAR,b.dt_proposta,103) AS data_proposta, "
   sqlVendas = sqlVendas & " b.dt_cancelamento, b.qt_tempogarantia, CONVERT(VARCHAR, b.dt_cancelamento, 103) as data_cancelamento, "
   sqlVendas = sqlVendas & " c.id_produto, c.ds_produto, b.dt_proposta, b.cd_status "
   sqlVendas = sqlVendas & " from dbo.garantia_venda_cliente as a "
   sqlVendas = sqlVendas & " inner join dbo.garantia_venda as b on b.id_venda = a.id_venda "
   sqlVendas = sqlVendas & " inner join dbo.garantia_produto as c on c.id_produto = b.id_produto "
   sqlVendas = sqlVendas & " where b.id_Estipulante = "& Estipulante

   'Filtro Estipulante
   'if Estipulante <> "0" then
    '   sqlVendas = sqlVendas & " and b.id_Estipulante = " & Estipulante
   'end if

   'Filtro Pdv
   if Pdv <> "0" then
       sqlVendas = sqlVendas & " and b.id_pdv = " & Pdv
   end if

   'Filtro Vendedor
   if Vendedor <> "0" then
       sqlVendas = sqlVendas & " and b.id_usuario_proposta = " & Vendedor
   end if

   'Filtro Período
   if request.Form("edtDataInicial") <> "" or request.Form("edtDataFinal") <> "" then
       sqlVendas = sqlVendas & " and CONVERT(CHAR,b.dt_proposta, 103) >= '" & request.Form("edtDataInicial") & "'" 
       sqlVendas = sqlVendas & " and CONVERT(CHAR,b.dt_proposta, 103) <= '" & request.Form("edtDataFinal") & "'" 
   end if

   'Filtro Tipo - Ativo
   if Request.QueryString("cbxTipo") = "1" then
       sqlVendas = sqlVendas & " AND b.cd_status = 2"
   end if

   'Filtro Tipo - Cancelado
   if Request.QueryString("cbxTipo") = "0" then
       sqlVendas = sqlVendas & " AND b.cd_status = 3"
   end if

   sqlVendas = sqlVendas & " Group by a.nm_cliente, a.id_cliente, a.id_venda, b.id_venda, b.id_cliente, b.id_produto, "
   sqlVendas = sqlVendas & " b.id_estipulante, b.id_pdv, b.id_usuario_orcamento, b.id_usuario_proposta, "
   sqlVendas = sqlVendas & " a.dt_inclusao, b.vl_premio, b.num_certificado, b.dt_cancelamento, b.qt_tempogarantia, b.dt_cancelamento, "
   sqlVendas = sqlVendas & " c.id_produto, c.ds_produto, b.dt_proposta, b.cd_status "
   sqlVendas = sqlVendas & " order by b.id_usuario_proposta asc "

   Set rs = CreateObject("ADODB.RecordSet")
   rs.cursorlocation = 3
   rs.Open sqlVendas, cnn
   c = 0

   if rs.EOF then
       Response.Write("Nenhum registro encontrado!")
       Response.End
   end if

   'Selecionar o estipulante e o pdv
   Set rsPdvEst   = Server.CreateObject("ADODB.RecordSet")
   sqlPdvEst = " SELECT a.ds_pdv, b.nm_estipulante "
   sqlPdvEst = sqlPdvEst & " from dbo.garantia_pdv as a "
   sqlPdvEst = sqlPdvEst & " inner join dbo.garantia_estipulante as b on a.id_estipulante = b.id_estipulante "
   sqlPdvEst = sqlPdvEst & " where a.id_pdv = " & Pdv
   rsPdvEst.Open sqlPdvEst, cnn
%>
<!--Cabecalho do arquivo-->
   <tr><td class="titulo_fale" colspan="7"><b>RELATÓRIO DE VENDAS</b><br />
   <tr><td class="titulo_fale" colspan="7"><b>Data: <%=now() %></b><br />
   <tr><td class="titulo_fale" colspan="7"><b>Cliente: <%=rs("nm_cliente") %></b><br />
   <tr><td class="titulo_fale" colspan="7"><b>Perííodo: <% 
       if request("edtDataInicial") <> "" and request("edtDataFinal") <> "" then
           dataIni = request("edtDataInicial")
           dataFim = request("edtDataFinal")
           Response.Write dataIni & " a " & dataFim
       end if
    %></b></td></tr>
   <tr><td class="titulo_fale" colspan="7"> </td></tr>
   <tr><td class="titulo_fale" colspan="7"> </td></tr>
   <tr><td class="titulo_fale" colspan="7"><b>Loja:</b> <%=rsPdvEst("ds_pdv") %></td></tr>
   <tr><td class="titulo_fale" colspan="7"> </td></tr>

   <%
       do while not rs.EOF

       'Nome do Vendedor que fez a venda
       Set rsVendedor = CreateObject("ADODB.RecordSet")
       sqlEst = " select id_usuario, nm_usuario "
       sqlEst = sqlEst & " from dbo.garantia_usuario "
       sqlEst = sqlEst & " where id_usuario = " & rs("id_usuario_orcamento")
       sqlEst = sqlEst & " order by nm_usuario asc "
       rsVendedor.Open sqlEst, cnn

       %>
       <tr><td class="titulo_fale" colspan="7"><b>Vendedor:</b> <%=rsVendedor("nm_usuario") %></td></tr>        
       <!--Corpo do arquivo-->
       <tr class="titulo_fale">
           <th>Certificado</th>
           <th>Nome Cliente</th>
           <th>Descrição</th>
           <th>Valor</th>
           <th>Tempo</th>
           <th>Data Venda</th>
           <th>Data Canc.</th>
       </tr>

   <tr class="titulo_fale">
       <td>0000000000000000<%=rs("num_certificado")%></td>
       <td> <%=rs("nm_cliente") %></td>
       <td> <%=rs("ds_produto") %></td>
       <td align="center">R$ <%=rs("vl_premio") %></td>
       <td align="center"><%=rs("qt_tempogarantia") %> meses</td>
       <td align="center"><%=rs("data_proposta") %></td>
       <td align="center"><%=rs("data_cancelamento") %></td>
   </tr>
   <% 
       totalVendas     = cdbl(totalVendas) + cdbl(rs("vl_premio"))

       'Conta quantos registros existem referente ao total de contratos
       if rs.Supports(adApproxPosition)=true then
           qntVendasTotal=rs.RecordCount
       end if

       'Número de Contratos
       c = c + 1
       qntContratos    = c
       qntLoja         = c  

       'Quantidade Total de Contratos
       qntTotal    = cdbl(qntTotal) + cdbl(qntContratos)   

       'Valor Total dos Contratos
       vlTotal     = cdbl(vlTotal) + cdbl(totalVendas)
       totalVendas = 0                                     
       qntContratos = 0

    rs.moveNext : loop %>
   <tr class="titulo_fale">
       <td>Total de Vendas</td>
       <td> </td>
       <td><%=qntLoja %></td>
       <td><%=vlTotal %></td>
       <td> </td>
       <td> </td>
       <td> </td>
       <br />
   </tr>
   <tr class="titulo_fale">
       <td>Total Geral</td>
       <td> </td>
       <td><%=qntVendasTotal %></td>
       <td><b><%=vlTotal %></b></td>
       <td> </td>
       <td> </td>
       <td> </td>
   </tr>

   <!--Final do arquivo-->

   </tbody>
 </table>
</form>


 

Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai Pessoal,

To com outro problema nesse relatório..

Minha dúvida anterior já resolvi, porém preciso mudar a forma que ele me mostra o resultado de valor.

A linha de valor total não está ficando no final, ou seja, abaixo da linha 212..

Meu código está abaixo e já agradeço a ajuda...

Exemplo:

 

204 LUCAS AQUECEDOR DE AR ELÉTRICO R$ 15,64 12 meses 30/07/2012

Total vendedor R$ 193,07

206 LUCAS MICROGRAVADOR R$ 45,95 24 meses 30/07/2012

209 LUCAS ESTABILIZADOR DE TENSÃO / NOBREAK R$ 26,16 12 meses 30/07/2012

211 LUCAS FOGÃO CONVENCIONAL À GÁS R$ 63,61 12 meses 30/07/2012

212 LUCAS RELÓGIO DE PULSO DIGITAL R$ 41,71 12 meses 30/07/2012

   <%
       dim id_vendedor, id_vendedor2
       do while not rs.EOF

       'Nome do Vendedor que fez a venda
       Set rsVendedor = CreateObject("ADODB.RecordSet")
       sqlEst = " select id_usuario, nm_usuario "
       sqlEst = sqlEst & " from dbo.garantia_usuario "
       sqlEst = sqlEst & " where id_usuario = " & rs("id_usuario_proposta")
       sqlEst = sqlEst & " order by nm_usuario asc "
       rsVendedor.Open sqlEst, cnn

        if id_vendedor <> rsVendedor("id_usuario") then
         id_vendedor = rsVendedor("id_usuario")  
       %>
       <tr><td class="titulo_fale" colspan="7"> </td></tr>
       <tr><td class="titulo_fale" colspan="7"><b>Loja:</b> <%=rsPdvEst("ds_pdv") %></td></tr>
       <tr><td class="titulo_fale" colspan="7"><b>Vendedor:</b> <%=rsVendedor("nm_usuario") %></td></tr> 
       <!--Corpo do arquivo-->
       <tr class="titulo_fale">
           <th>Certificado</th>
           <th>Nome Cliente</th>
           <th>Descrição Garantia Estendida(GE)</th>
           <th>Valor GE</th>
           <th>Tempo GE</th>
           <th>Data Venda</th>
           <th>Data Canc.</th>
       </tr>
       <% end if %>
       <tr class="titulo_fale">
           <td><%=rs("num_certificado")%></td>
           <td> <%=rs("nm_cliente") %></td>
           <td> <%=rs("ds_produto") %></td>
           <td align="center">R$ <%=rs("vl_premio") %></td>
           <td align="center"><%=rs("qt_tempogarantia") %> meses</td>
           <td align="center"><%=rs("data_proposta") %></td>
           <td align="center"><%=rs("data_cancelamento") %></td>
       </tr>
       <% 
           'Soma a valor do prêmio
           Set rsTotalVendedor = Server.CreateObject("ADODB.RecordSet")
           sqlValorTotal = " select SUM(vl_premio) as totalVendasVendedor, COUNT(id_venda) as qntTotalVendas "
           sqlValorTotal = sqlValorTotal & " from garantia_venda "
           sqlValorTotal = sqlValorTotal & " where id_usuario_proposta = " & rs("id_usuario_proposta")
           rsTotalVendedor.Open sqlValorTotal, cnn

           do while not rsTotalVendedor.EOF 
               if id_vendedor2 <> rsVendedor("id_usuario") then
                  id_vendedor2 = rsVendedor("id_usuario") 

        %>
          <tr class="titulo_fale">
               <td style="color:red;"><b>Total vendedor</b></td>
               <td> </td>
               <td align="center" style="color:red;"><b><%=rsTotalVendedor("qntTotalVendas")%></b></td>
               <td align="center" style="color:red;"><b>R$ <%=FormatNumber(rsTotalVendedor("totalVendasVendedor"),2)%></b></td>
               <td> </td>
               <td> </td>
               <td> </td>
         </tr>
        <%     end if
           rsTotalVendedor.moveNext : Loop

       rs.moveNext : loop
       %>

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.