|
Postada em 17/02/2009 17:18 hs
Pessoal, preciso de uma ajuda com DATA... Eu preciso verificar num arquivo, qndo ele foi atualizado a ultima vez.... EX:19/01/2009 Então eu preciso separar essa data pra tras em 8 semanas Ex: Semana1 - 19/01/2009 á 12/01/2009 Semana2 - 11/01/2009 á 05/01/2009 Semana3 - 04/01/2009 á 29/12/2008 Semana4 - 28/12/2008 á 22/12/2008 Semana5 - 21/12/2008 á 15/12/2008 Semana6 - 14/12/2008 á 08/12/2008 Semana7 - 07/12/2008 á 01/12/2008 Semana8 - 30/11/2008 á 24/11/2008 Alguem sabe me dizer como faz isso?
Juliana
|
|
|
|
|
Postada em 18/02/2009 09:18 hs
dtinicio = "19/01/2009" SELECT '1' AS SEM, ARQUIVO.* FROM ARQUIVO WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.data) < 8 UNION SELECT '2' AS SEM1, ARQUIVO.* FROM ARQUIVO WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.data) < 16 UNION ....... e no final ORDER BY SEM ... Alguma coisa assim
|
|
|
Juliana T.
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 18/02/2009 10:42 hs
Aiii... eu não entedi!!! Não ficou muito claro...Não consegui fazer!!! Tem como me explicar melhor?
|
|
|
|
Postada em 18/02/2009 11:07 hs
qual o layout do teu arquivo ? NOme dos campos que quer extrair. A data de inicio seria o último dia da semana final a ser considerada: dtinicio = "19/01/2009" aqui vc faz um select filtrando os registros "Select '1' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 8 UNION Select '2' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 16 UNION Select '3' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 24 UNION Select '4' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 32 UNION Select '5' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 40 UNION Select '6' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 48 UNION Select '7' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 56 UNION Select '8' AS SEM, Arquivo.dataatu FROM Arquivo WHERE DATEDIFF('d', '" & dtinicio & "', arquivo.dataatu) < 64 ORDER BY SEM" Dentro dos recordsets de resultado da pesquisa o rs.fields(0) quando contiver '1' será da semana 1 e assim sucessivamente. Se não conseguiu entender então manda o lay out da tua tabela
|
|
|
Juliana T.
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 18/02/2009 14:22 hs
Eu não entendi esse "AS SEM", "arquivo.dataatu", "datediff"... hahaha, ou seja nada...! A minha tabela é essa: Select Distinct a.codproddf COD_ANT, SUM (g.qtcomp) VENDA_ACUM From cad_itprod a, mov_itsaida g Where a.coditprod = g.coditprod and g.tpnota = 51 and g.status <> 9 and g.dtnota >='18/01/2009' and g.dtnota <='19/01/09' and g.codfil not in (3, 8, 15, 22, 28, 33, 37, 70, 72, 83, 85, 87, 98, 128, 142, 150, 155, 501, 502, 86, 88, 89, 107, 148, 147, 132, 118) and a.codproddf = 46535438 Having Sum(g.qtcomp) > 0 Group by a.codproddf
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/02/2009 21:43 hs
Juliana Faz um código fora da query veja este exemplo, coloque um listbox em seu projeto e cole este código em um botão Private Sub Command1_Click() Dim Data As Date Data = "19/01/2009" For f = 1 To 8 Data = DateAdd("ww", -1, Data) If f > 1 Then List1.AddItem Format(DateAdd("ww", 1, Data) - 1, "dd/mm/yyyy") & " - " & Format(Data, "dd/mm/yyyy") Else List1.AddItem Format(DateAdd("ww", 1, Data), "dd/mm/yyyy") & " - " & Format(Data, "dd/mm/yyyy") End If Next f End Sub veja se te ajuda
|
|
|
|