none
Semana do mês

    Question

  • 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?!

    Wednesday, June 25, 2008 4:51 PM

Answers

  • 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

     

     

    Thursday, June 26, 2008 2:36 AM

All replies

  • 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,

    Wednesday, June 25, 2008 7:35 PM
  • 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.

    Thursday, June 26, 2008 1:38 AM
  • 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

     

     

    Thursday, June 26, 2008 2:36 AM
  • 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....

     

    • Proposed as answer by Setecidades Wednesday, May 30, 2012 4:27 PM
    Wednesday, July 02, 2008 6:58 PM
  • 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!

    Tuesday, February 22, 2011 7:13 PM