Ir para conteúdo
Fórum Script Brasil
  • 0

Problema ao realizar consulta


dcoder

Pergunta

Bom dia pessoal,

Estou precisando de uma ajuda sou iniciante em asp e estou com um problemao tremendo..

Preciso criar um filtro assim:

http://img187.imageshack.us/img187/2554/imgkj4.jpg

Essa consulta tem que retornar a demanda mensal por item em ordem desc, só que o codigo que fiz esta filtrando somente o mes de janeiro...

Acho que a imagem explica tudo..

Aguardo a juda de voces, obrigado.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Posta o codigo...

Cara muito obrigado, segue o codigo:

<%

'O Primeiro passo é criar a conexão com o Banco de dados.
'Para isto crio um objeto do tipo Connection.
'Cria um Objeto do Tipo ADODB.Connection 

Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("dados/dados.mdb")





Dim optitem
optitem = Request.Form("optjan")
Dim sql_item
sql_item = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optjan <> "") then
  sql_item = sql_item + " Where Month(DtEntrega) = " + optitem 
end if
   sql_item = sql_item + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_item
Set const_item = Server.CreateObject("ADODB.RecordSet")
'response.write str
'response.End()
const_item.Open sql_item,conexao,3,3 


'*************************************************************

Dim optjan
optjan = Request.Form("optjan")
Dim sql_jan
sql_jan = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optjan <> "") then
  sql_jan = sql_jan + " Where Month(DtEntrega) = " + optjan 
end if
   sql_jan = sql_jan + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_janeiro
Set const_janeiro = Server.CreateObject("ADODB.RecordSet")
'response.write str
'response.End()
const_janeiro.Open sql_jan,conexao,3,3 

'*************************************************************

Dim optfev 
optfev = Request.Form("optfev")
Dim sql_fev
sql_fev = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optfev <> "") then
  sql_fev = sql_fev + " Where Month(DtEntrega) = " + optfev
end if
   sql_fev = sql_fev + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_fev
Set const_fev = Server.CreateObject("ADODB.RecordSet")
'response.write sql_fev
'response.End()
const_fev.Open sql_fev,conexao,3,3

'*************************************************************

Dim optmar 
optmar = Request.Form("optmar")
Dim sql_mar
sql_mar = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optmar <> "") then
  sql_mar = sql_mar + " Where Month(DtEntrega) = " + optmar
end if
   sql_mar = sql_mar + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_mar
Set const_mar = Server.CreateObject("ADODB.RecordSet")
'response.write sql_mar
'response.End()
const_mar.Open sql_mar,conexao,3,3 

'**************************************************************

Dim optabril
optabril = Request.Form("optabril")
Dim sql_abril
sql_abril = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optabril <> "") then
  sql_abril = sql_abril + " Where Month(DtEntrega) = " + optabril
end if
   sql_abril = sql_abril + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_abril
Set const_abril = Server.CreateObject("ADODB.RecordSet")
'response.write sql_abril
'response.End()
const_abril.Open sql_abril,conexao,3,3 

'**************************************************************

Dim optmaio
optmaio = Request.Form("optmaio")
Dim sql_maio
sql_maio = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optmaio <> "") then
  sql_maio = sql_maio + " Where Month(DtEntrega) = " + optmaio
end if
   sql_maio = sql_maio + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_maio
Set const_maio = Server.CreateObject("ADODB.RecordSet")
'response.write sql_maio
'response.End()
const_maio.Open sql_maio,conexao,3,3 

'**************************************************************

Dim optjun
optjun = Request.Form("optjun")
Dim sql_jun
sql_jun = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optjun <> "") then
  sql_jun = sql_jun + " Where Month(DtEntrega) = " + optjun
end if
   sql_jun = sql_jun + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_jun
Set const_jun = Server.CreateObject("ADODB.RecordSet")
'response.write sql_jun
'response.End()
const_jun.Open sql_jun,conexao,3,3 

'**************************************************************

Dim optjul
optjul = Request.Form("optjul")
Dim sql_jul
sql_jul = "SELECT item, SUM(total) AS DtEntrega From FIAT"
if  (optjul <> "") then
  sql_jul = sql_jul + " Where Month(DtEntrega) = " + optjul
end if
   sql_jul = sql_jul + " Group By Item Order By SUM(total)DESC"

'Criamos o RecordSet const_jul
Set const_jul = Server.CreateObject("ADODB.RecordSet")
'response.write sql_jul
'response.End()
const_jul.Open sql_jul,conexao,3,3 

'**************************************************************

'RecordSet para o menu Clientes
Set menu_clientes = Server.CreateObject("ADODB.Recordset")
menu_clientes.Open "Select Cliente from FIAT Group By Cliente Order By Cliente", conexao, 3, 3

%>
    



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>::: SISTEMA DE GEST&Atilde;O DE MANUFATURA - SIGMA :::</title>
<style type="text/css">
<!--
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    background-color: #FFFFFF;
}
.titulo_menor {
    font-family: Geneva, Arial, Helvetica, sans-serif;
    font-size: 11px;
}
.titulo {
    font-family: Geneva, Arial, Helvetica, sans-serif;
    font-size: 12px;
}
.style3 {font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; }
-->
</style></head>

<body>
<form method="POST" action="inicio.asp">
  <table width="1500" border="0" align="center" cellpadding="0" cellspacing="3" bgcolor="#FFFFFF">
    <tr>
      <td width="729" height="16" rowspan="5" valign="top"><img src="imagens/banner.jpg" width="600" height="100" /></td>
      <td colspan="3"><div align="center"><span class="titulo_menor">PLANEJAMENTO DE MANUFATURA </span></div></td>
    </tr>
    <tr>
      <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
      <td width="95" bgcolor="#F2F2F2">&nbsp;</td>
      <td width="92" bgcolor="#F2F2F2">&nbsp;</td>
      <td width="74" bgcolor="#F2F2F2">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
      <td height="6" colspan="4">&nbsp;</td>
    </tr>
    <tr>
      <td height="7" colspan="4"><table width="1500" border="0" cellspacing="2" cellpadding="0">
          <tr>
            <td width="46" bgcolor="#DDDDDD"><span class="style3">Cliente:</span></td>
            <td width="151" bgcolor="#F2F2F2"><label></label>
              <label>
             <SELECT id=optClientes name=optClientes> 

<%

'Agora construo a lista de opções a partir dos
'dados obtidos da tabela FIAT.

Do While Not menu_clientes.EOF
     Response.Write "<OPTION value=" & Chr(34) & menu_clientes.Fields("Cliente") & Chr(34) & ">" & menu_clientes.Fields("Cliente")& "</OPTION>"
menu_clientes.MoveNext  

Loop
%>

</SELECT>
              </label></td>
            <td width="132" bgcolor="#F2F2F2">&nbsp;</td>
            <td width="52" bgcolor="#DDDDDD"><span class="style3">C&eacute;lulas:</span></td>
            <td width="173" bgcolor="#F2F2F2"><label></label>              <select name="celulas" id="celulas">
              <option value="afiat">Curva A-Fiat</option>
              <option value="bfiat">Curva BC-Fiat</option>
              <option value="gmb">GMB</option>
              </select>
            </td>
            <td width="94" bgcolor="#DDDDDD"><span class="style3">Filtro por m&ecirc;s: </span></td>
            <td width="278" bgcolor="#F2F2F2" class="titulo_menor"><a href="#" onclick="window.open('busca_mes.asp', 'busca', 'STATUS=NO, TOOLBAR=NO, LOCATION=NO, DIRECTORIES=NO, RESISABLE=NO, SCROLLBARS=YES, TOP=10, LEFT=10, WIDTH=600, HEIGHT=600');">Pesquisar demanda por m&ecirc;s </a>              </label>             </td>
            <td width="63" bgcolor="#DDDDDD">&nbsp;</td>
            <td width="187" bgcolor="#DDDDDD"><div align="center" class="style3">M&ecirc;s atual </div></td>
            <td width="157" bgcolor="#DDDDDD"><div align="center" class="style3">90 D </div></td>
            <td width="137" bgcolor="#DDDDDD"><div align="center" class="style3">180D</div></td>
          </tr>
          <tr>
            <td bgcolor="#DDDDDD"><span class="style3">Planta:</span></td>
            <td bgcolor="#F2F2F2"><label>
              <select name="planta" id="planta">
              </select>
            </label></td>
            <td bgcolor="#F2F2F2">&nbsp;</td>
            <td bgcolor="#DDDDDD">&nbsp;</td>
            <td bgcolor="#F2F2F2">&nbsp;</td>
            <td bgcolor="#DDDDDD"><span class="style3">Mix de Produtos: </span></td>
            <td bgcolor="#F2F2F2" class="titulo"></td>
            <td bgcolor="#DDDDDD"><span class="style3">Demanda:</span></td>
            <td bgcolor="#F2F2F2"><div align="center" class="titulo_menor"></div></td>
            <td bgcolor="#F2F2F2"><div align="center" class="titulo_menor">ASP</div></td>
            <td bgcolor="#F2F2F2"><div align="center" class="titulo_menor">ASP</div></td>
          </tr>
          <tr>
            <td bgcolor="#DDDDDD"><span class="style3">Fonte:</span></td>
            <td bgcolor="#F2F2F2" class="titulo">EDI</td>
            <td bgcolor="#F2F2F2">&nbsp;</td>
            <td bgcolor="#DDDDDD">&nbsp;</td>
            <td bgcolor="#F2F2F2">&nbsp;</td>
            <td bgcolor="#DDDDDD">&nbsp;</td>
            <td bgcolor="#F2F2F2">&nbsp;</td>
            <td bgcolor="#DDDDDD"><span class="style3">Varia&ccedil;&otilde;es:</span></td>
            <td bgcolor="#F2F2F2"><div align="center" class="titulo_menor">ASP</div></td>
            <td bgcolor="#F2F2F2"><div align="center" class="titulo_menor">ASP</div></td>
            <td bgcolor="#F2F2F2"><div align="center" class="titulo_menor">ASP</div></td>
          </tr>
        </table>
          <table width="1500" border="0" cellspacing="2" cellpadding="0">
            <tr>
              <td colspan="6" bgcolor="#D7F4EB">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2" bgcolor="#F2F2F2" class="titulo_menor"><div align="center"></div></td>
              <td bgcolor="#DDDDDD" class="titulo_menor"><div align="center"><strong>Demanda</strong></div></td>
              <td bgcolor="#F2F2F2" class="titulo_menor">&nbsp;</td>
              <td width="329" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"><strong>Analise das varia&ccedil;&otilde;es </strong></div></td>
              <td width="143" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"><strong>Curva</strong></div></td>
            </tr>
            <tr>
              <td width="105" bgcolor="#F2F2F2" class="titulo_menor"><div align="center"></div></td>
              <td width="105" bgcolor="#DDDDDD" class="titulo_menor"><div align="center" class="style3">M&ecirc;s atual </div></td>
              <td width="586" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"><strong>Pr&oacute;ximos 6 meses</strong></div></td>
              <td width="212" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"><strong>Consolida&ccedil;&atilde;o</strong></div></td>
              <td bgcolor="#F2F2F2" class="titulo_menor">&nbsp;</td>
              <td bgcolor="#F2F2F2" class="titulo_menor">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="6" bgcolor="#D7F4EB" class="titulo_menor">Selecione os meses para qual deseja consulta e clique em atualizar </td>
            </tr>
          </table>
          <table width="1500" border="0" cellpadding="0" cellspacing="3" bgcolor="#DDDDDD">
            <tr>
              <td width="104"><div align="center">
                <input name="atualiza" type="submit" id="atualiza" value="Atualizar" />
              </div></td>
              <td width="101"><div align="center">
                <input name="optjan" type="radio" value="01" checked="checked" />
              </div></td>
              <td width="95"><div align="center">
                <input name="optfev" type="radio" value="02" checked="checked" />
              </div></td>
              <td width="88"><div align="center">
                <input name="optmar" type="radio" value="03" checked="checked" />
              </div></td>
              <td width="95"><div align="center">
                <input name="optabril" type="radio" value="04" checked="checked" />
              </div></td>
              <td width="97">                <div align="center">
                <input name="optmaio" type="radio" value="05" checked="checked" />
              </div></td>
              <td width="94"><div align="center">
                <input name="optjun" type="radio" value="06" checked="checked" />
              </div></td>
              <td width="100"><div align="center">
                <input name="optjul" type="radio" value="07" checked="checked" />
              </div></td>
              <td width="106">&nbsp;</td>
              <td width="104">&nbsp;</td>
              <td width="103">&nbsp;</td>
              <td width="117">&nbsp;</td>
              <td width="103">&nbsp;</td>
              <td width="148">&nbsp;</td>
            </tr>
            <tr>
              <td class="style3"><div align="center"><strong>Item</strong></div></td>
              <td width="101" class="style3"><div align="center"><strong>Janeiro</strong></div></td>
              <td width="95" class="style3"><div align="center"><span class="style3">Fevereiro</span></div></td>
              <td width="88" class="style3"><div align="center"><strong>Mar&ccedil;o </strong></div></td>
              <td width="95" class="style3"><div align="center"><strong>Abril </strong></div></td>
              <td width="97" class="style3"><div align="center"><strong>Maio</strong></div></td>
              <td width="94" class="style3"><div align="center"><strong>Junho</strong></div></td>
              <td width="100" class="style3"><div align="center"><strong>Julho</strong></div></td>
              <td width="106" class="style3"><div align="center"><strong>90D</strong></div></td>
              <td width="104" class="style3"><div align="center"><strong>180D</strong></div></td>
              <td width="103" class="style3"><div align="center"><strong>M&ecirc;s atual x 90D</strong></div></td>
              <td width="117" class="style3"><div align="center"><strong>M&ecirc;s atual x 180D</strong></div></td>
              <td width="103" class="style3"><div align="center"><strong>90D x 180D </strong></div></td>
              <td width="148" class="style3"><div align="center"></div></td>
            </tr>
          </table>
          <table width="1500" border="0" cellspacing="2" cellpadding="0">
            <tr>
              <td width="106" valign="top" bgcolor="#D7F4EB" class="titulo_menor"><div align="center">
              
              <%Do Until const_item.EOF   %>
              <br />
              <%=const_item.Fields("item")%>
              <br/>
              <%
              const_item.MoveNext
              Loop
              %>
              
              </div></td>
              <td width="102" valign="top" bgcolor="#DDDDDD" class="titulo_menor"><div align="center">
                
               <%Do Until const_janeiro.EOF %>
               <br />
               <%=const_janeiro.Fields("DtEntrega")%>
               <br />
               <%
               const_janeiro.MoveNext 
               Loop
               %>
                
              </div></td>
              <td width="96" valign="top" bgcolor="#DDDDDD" class="titulo_menor"><div align="center" class="titulo_menor">
              
              <%Do Until const_fev.EOF %>
              <br />
              <%=const_fev.Fields("DtEntrega")%><br />
              <% 
              const_fev.MoveNext 
              Loop 
              %>
              
              </div></td>
              <td width="90" valign="top" bgcolor="#DDDDDD" class="titulo_menor"><div align="center">
                <%Do Until const_mar.EOF %>
                <br />
                <%=const_mar.Fields("DtEntrega")%><br />
                <% 
              const_mar.MoveNext 
              Loop 
              %>
              </div></td>
              <td width="96" valign="top" bgcolor="#DDDDDD" class="titulo_menor"><div align="center">
                <div align="center">
                  <%Do Until const_abril.EOF %>
                  <br />
                  <%=const_abril.Fields("DtEntrega")%><br />
                  <% 
              const_abril.MoveNext 
              Loop 
              %>
                </div>
              </div></td>
              <td width="97" valign="top" bgcolor="#DDDDDD" class="titulo_menor"><div align="center">
                <%Do Until const_maio.EOF %>
                <br />
                <%=const_maio.Fields("DtEntrega")%><br />
                <% 
              const_maio.MoveNext 
              Loop 
              %>
              </div></td>
              <td width="96" valign="top" bgcolor="#DDDDDD" class="titulo_menor"><div align="center">
                <%Do Until const_jun.EOF %>
                <br />
                <%=const_jun.Fields("DtEntrega")%><br />
                <% 
              const_jun.MoveNext 
              Loop 
              %>
              </div></td>
              <td width="100" valign="top" bgcolor="#DDDDDD" class="titulo_menor"><div align="center">
                <%Do Until const_jul.EOF %>
                <br />
                <%=const_jul.Fields("DtEntrega")%><br />
                <% 
              const_jul.MoveNext 
              Loop 
              %>
</div></td>
              <td width="92" bgcolor="#D7F4EB" class="titulo_menor"><div align="center"></div></td>
              <td width="110" bgcolor="#D7F4EB" class="titulo_menor"><div align="center"></div></td>
              <td width="104" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"></div></td>
              <td width="122" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"></div></td>
              <td width="106" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"></div></td>
              <td width="153" bgcolor="#DDDDDD" class="titulo_menor"><div align="center"></div></td>
            </tr>
        </table>
</td>
    </tr>

        
    <tr> </tr>
  </table>
</form>
</body>
</html>

obrigado cara..

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Dcoder!

Acredito que você está se confundindo ao organizar seu script, esclareço para você.

OBS:

O que entendi foi que o Item possui vários registros com valores diferentes onde você gostaria de somar todas as referências em um determinado mês e em um único item, organizando-os em uma lista por ordem Desc.

Sua logística:

1. Banco de dados FAIT

2. Tabela Item (O que entendi)

3. Campo Item

4. Campo DtEntrega

5. Objetivo Somar registros

6.Loop + Sum

Item ---

Item --- Janeiro ---fevereiro --- Março --- Abril --- Maio --- Junho --- Julho

Loop loop loop loop loop loop loop loop

---- Loop

Está foi sua logística para dar a sua ação desejada, porém com algumas controversas no excesso de loops individuais, ou seja, cada loop possui sua própria lógica de execução e não depende de uma base que seria o campo Item.

Para você entender melhor compare o exemplo abaixo de logística com a que foi citada acima.

7. Banco de dados FAIT

8. Tabela Item (O que enntendi)

9. Campo Item

10. Campo DtEntrega

11. Objetivo Somar registros

Resposta + Sum

Item ---

Item --- Janeiro ---fevereiro --- Março --- Abril --- Maio --- Junho --- Julho

Resposta Soma Soma Soma Soma Soma Soma Soma

---- Loop

Em relação à ordem por soma você poderá usar cases para executar isto. Porém acredito que ordenar por soma se trata de uma forma abstrata na organização da informação, ou seja, desnecessária caso o objetivo seja simplesmente somar por ordem de Item. Caso contrário é possível se organizar em relação a isto.

Exemplo claro:

1. Soma

<%  
SQL="SELECT item, SUM(DtEntrega) AS total_Suma_Item FROM FAIT"
set obj_Suma_Item = conexao.execute(SQL)
Total_Suma_Item = obj_Suma_Item("total_Suma_Item")
Set obj_Suma_Item = Nothing
%>
<%=Total_Suma_Item%>
2. Resposta
<%=Obj_Lista_Item("DtEntrega")%>

E/ou soma também de acordo com sua programação.

PS:

Meu ponto de vista sobre sua forma de organizar tudo isto seria rever a organização da informação e rever também a necessidade de usar cases para tornar mais focada as execuções já que o próprio script depende de atualização e não possui uma paginação onde ordena e limita o tempo de espera de execução da página. Uma forma inteligente de pensar em problemas futuros sobre números gigantescos de registros em uma única página.

Editado por Marcio Benvenuto de Lima
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...