none
Semana do mês

    Pergunta

  • Olá. tenho um problema com formulas no Crystal Report do VS2005.

    Preciso calcular um numero total produzido agrupado por semana.

     

    A formula DatePart ("ww", {date} ), me retorna a semana referente ao ano. E eu preciso dela referente ao mes. Tentei fazer um calculo no resultado que a mesma forma, mas não obtive sucesso, visto que alguns meses possuem 5 semanas e outros 6 semanas, como é o mês de Março, já que 1 de março cai num sábado.(Semana 1).

     

    Qual a sugestão de vocês?!

    quarta-feira, 25 de junho de 2008 16:51

Respostas

  • Viviane,

     

    Para calcular o dia da semana em SQL-Server

     

    Code Snippet

    CREATE FUNCTION dbo.WeekOfMonth (@data DATETIME)

    RETURNS INT

    AS

    BEGIN

    RETURN DATEPART(week, @data) - DATEPART(week, CONVERT(CHAR(6), @data, 112)+'01') + 1

    END

    go

     

    select dbo.WeekOfMonth('20080625')

    go

     

     

    quinta-feira, 26 de junho de 2008 02:36

Todas as Respostas

  • Viviane boa tarde!

     

    fiquei com uma dúvida na lógica que voce usou...

     

    Voce concorda comigo que dia 1 do mês é sempre o primeiro dia da primeira semana daquele mês...

    então nesse caso não apenas somar 7 dias para começar a proxima semana?!

     

    na verdade, gostaria que me explicasse melhor para que quer este resultado em semana do mês para eu tentar te ajudar, pois pesquisei aqui na net pra ver se havia alguma "fórmula" pra isso e não encontrei nada muito correto a respeito...

     

    abraço,

    quarta-feira, 25 de junho de 2008 19:35
  • VAmos por parte, eu tenho um relatorio que deve ser agrupado o resultado por "funcionario"  e um segundo grupo por "semana do mes"(primeira semana, segunda semana, enfim...).

    Funcionario 1               Janeiro          Fevereiro

    Semana 1               x                  

    Semana 2             2 x                     x

    Semana 3             3 x                  2 x

    Semana 4 

    Semana 5

    Semana 6

     

    Funcionario 2              Janeiro          Fevereiro

    Semana 1               x                  

    Semana 2             2 x                     x

    Semana 3             3 x                  2 x

    Semana 4 

    Semana 5

    Semana 6

       

    Para pegar a semana eu usei a  a formula datepart("ww", data_producao). Mas não funciona.

    Problema:  1 - em algum mes,posso nao ter nada em determinadas semanas..

                     2 - a formula usada serveria se fosse por ano, Janeiro de 1 a 5 semanas, fevereiro de 6 a 10, março de 7 a 12 semanas, etc.... Não consegui encontrar uma constante na diferença que permita eu elaborar uma logica p calcular a semana por mes. Não consigo pegar o weeknumber por mes.

    quinta-feira, 26 de junho de 2008 01:38
  • Viviane,

     

    Para calcular o dia da semana em SQL-Server

     

    Code Snippet

    CREATE FUNCTION dbo.WeekOfMonth (@data DATETIME)

    RETURNS INT

    AS

    BEGIN

    RETURN DATEPART(week, @data) - DATEPART(week, CONVERT(CHAR(6), @data, 112)+'01') + 1

    END

    go

     

    select dbo.WeekOfMonth('20080625')

    go

     

     

    quinta-feira, 26 de junho de 2008 02:36
  • Laercio, coloquei este trecho no meu sql e deu certinho.......exatamente como precisava.

     

    "semanaDoMes =  DATEPART(week, tabela.data) - DATEPART(week, CONVERT(CHAR(6),  tabela.data, 112)+'01') + 1 "

     

    Muitíssimo obrigada!

    Valeu....

     

    • Sugerido como Resposta Setecidades quarta-feira, 30 de maio de 2012 16:27
    quarta-feira, 2 de julho de 2008 18:58
  • Tambem precisei fazer a msm coisa e esse codigo ajudou muito!

    DATEPART(week, tabela.data) - DATEPART(week, CONVERT(CHAR(6),  tabela.data, 112)+'01') + 1 "

    Muito bom!

    terça-feira, 22 de fevereiro de 2011 19:13