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

Lista De Arquivos Por Mes


Guest - Cristiano -

Pergunta

Guest - Cristiano -

Como faço uma listagem de registros separados por mes e listar apenas os três primeiros registros de cada mês.

Tipo:

JANEIRO

-> 1

-> 2

-> 3

FEVEREIRO

-> 1

-> 2

-> 3

e por aí vai........

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Nunca fiz isso com uma instrução SQL só.

O q você poderia fazer é usar um select distinct no campo mes para pegar os meses da tabela.

depois percorrer esse recordset criando uma nova consulta usando select top 3 para pegar apenas os 3 primeiros registros WHERE o campo mes seja o valor atual do campo mes no recordset.

Link para o comentário
Compartilhar em outros sites

  • 0

pode ser:

Select Top 3 Campo1, Campo2 from Tabela Where Month(Data) = 1 UNION ALL Select Top 3 Campo1, Campo2 from Tabela Where Month(Data) = 2 UNION ALL Select Top 3 Campo1, Campo2 from Tabela Where Month(Data) = 3
... etc
se você não sabe os meses q estao no banco faca um select:
Select Month(data) as Mes from Tabela Group By Month(Data)

e faz o primeiro select usando for.

o problema tanto no meu codigo quanto no dp cyberalex é q o banco de dados so suporta uma determinada quantidade de WHERE ou de UNION. por isso, se você for separar por ano, e no banco tiverem dez anos, serao 12 meses * 10 = 120 UNIONs ou 120 WHEREs (AND), e não sei se o banco aguenta isso.

Link para o comentário
Compartilhar em outros sites

  • 0

vou aplicar os exemplo do Kuroi em cima da minha lógica postada anteriormente:

sql = Select Month(data) as Mes from Tabela Group By Month(Data)
set rs = conexao.execute(sql)
Do while not rs.eof
   Response.write "Mes: " & rs("mes") & "<br>"
   sql2 = Select Top 3 Campo1, Campo2 from Tabela Where Month(Data) =" & rs("mes")
   conexao.execute(sql2)
   Do while not rs2.eof
      'mostra os dados
      Rs2.MoveNext
   loop
   rs.movenext
loop

Link para o comentário
Compartilhar em outros sites

  • 0
vou aplicar os exemplo do Kuroi em cima da minha lógica postada anteriormente:

sql = Select Month(data) as Mes from Tabela Group By Month(Data)
set rs = conexao.execute(sql)
Do while not rs.eof
   Response.write "Mes: " & rs("mes") & "<br>"
   sql2 = Select Top 3 Campo1, Campo2 from Tabela Where Month(Data) =" & rs("mes")
   conexao.execute(sql2)
   Do while not rs2.eof
      'mostra os dados
      Rs2.MoveNext
   loop
   rs.movenext
loop

isso ae, cyberalexxx

desse jeito fica melhor, dando um select por vez e mostrando separado.

não corre o risco de estourar os WHERE igual eu tinha falado.

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,1k
    • Posts
      651,9k
×
×
  • Criar Novo...