none
Select com datas RRS feed

  • Pergunta

  • Boa noite,

    Algúem me sabe dizer como conseguir fazer um select onde uma das condições é a seleção dos resgistos correspondentes a data do mês actua?

    Tenho isto:

    strSQL = "SELECT COUNT(estado) AS Ganho, SUM(qt_ativacoes_gsm) AS Expr1, SUM(qt_fidelizacoes_gsm) AS Expr2, SUM(qt_ativacoes_blm) AS Expr3, SUM(qt_fidelizacoes_blm) AS Expr4, SUM(qt_ativacoes_email) AS Expr5, SUM(qt_fidelizacoes_email) AS Expr6, SUM(qt_eventos_fixa_internet) AS Expr7, SUM(qt_sites) AS Expr8, SUM(qt_usere) AS Expr9 FROM tbl_registo_negocio WHERE estado = 'Ganho' AND fkid_nome_comercial = '" & Label8.Text & "' AND'data_negocio'" = Now.Month()

    O erro está no sublinhado. A data negócio é uma data e o erro que dá é:

    A conversão da cadeia "SELECT COUNT(estado) AS Ganho, S" para o tipo 'Double' não é válida.

    Mas se tirar o que está sublinhado, o select funciona, mas não traz somente os valor do mês actual.

    Podem ajudar-me?
    domingo, 14 de outubro de 2012 00:14

Todas as Respostas

  • Boa noite,

    Algúem me sabe dizer como conseguir fazer um select onde uma das condições é a seleção dos resgistos correspondentes a data do mês actua?

    Tenho isto:

    strSQL = "SELECT COUNT(estado) AS Ganho, SUM(qt_ativacoes_gsm) AS Expr1, SUM(qt_fidelizacoes_gsm) AS Expr2, SUM(qt_ativacoes_blm) AS Expr3, SUM(qt_fidelizacoes_blm) AS Expr4, SUM(qt_ativacoes_email) AS Expr5, SUM(qt_fidelizacoes_email) AS Expr6, SUM(qt_eventos_fixa_internet) AS Expr7, SUM(qt_sites) AS Expr8, SUM(qt_usere) AS Expr9 FROM tbl_registo_negocio WHERE estado = 'Ganho' AND fkid_nome_comercial = '" & Label8.Text & "' AND 'data_negocio'" = Now.Month()

    O erro está no sublinhado. A data negócio é uma data e o erro que dá é:

    A conversão da cadeia "SELECT COUNT(estado) AS Ganho, S" para o tipo 'Double' não é válida.

    Mas se tirar o que está sublinhado, o select funciona, mas não traz somente os valor do mês actual.

    Podem ajudar-me?
    sábado, 13 de outubro de 2012 22:39
  • Ola você esta usando SQL Server né ?

    Você pode usar a função Month() do SQL temos também Year()

    strSQL = "SELECT COUNT(estado) AS Ganho, SUM(qt_ativacoes_gsm) AS Expr1, SUM(qt_fidelizacoes_gsm) AS Expr2, SUM(qt_ativacoes_blm) AS Expr3, SUM(qt_fidelizacoes_blm) AS Expr4, SUM(qt_ativacoes_email) AS Expr5, SUM(qt_fidelizacoes_email) AS Expr6, SUM(qt_eventos_fixa_internet) AS Expr7, SUM(qt_sites) AS Expr8, SUM(qt_usere) AS Expr9 FROM tbl_registo_negocio WHERE estado = 'Ganho' AND fkid_nome_comercial = '" & Label8.Text & "' AND Month(data_negocio) = '" &  Now.Month().ToString() & "' "


    Junior

    domingo, 14 de outubro de 2012 21:56
  • No SQL Server a forma de filtrar somente o mês atual seria usando a função Month:

    ... AND Month(data_negocio) = Month(GetDate())

    (A função GetDate retorna a data atual.)

    Se você já tiver o mês atual na sua linguagem de programação e  preferir usá-la, poderia fazer:

    ... AND Month(data_negocio) = " Now.Month()

    Vale à pena ressaltar que a utilização de funções no Where não é uma boa prática e deve ser evitada a custos de performance.

    Neste caso em especial, o ideal é que já existisse na tabela uma coluna que representasse o mês dessa data. Assim não precisaríamos "descobrir" o mês no momento do Select.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    segunda-feira, 15 de outubro de 2012 12:09
  • Ruben,

    já respondi a esta sua dúvida na outra Thread que abriu: http://social.technet.microsoft.com/Forums/pt-BR/expresscompactpt/thread/db092217-b705-4357-92e4-85d08af481a8

    Por favor, mantenha somente uma Thread sobre um mesmo assunto. Isso nos ajuda a manter a organização do fórum. Obrigado.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    segunda-feira, 15 de outubro de 2012 16:12
  • Vou mesclar as Threads para organização.

    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    segunda-feira, 15 de outubro de 2012 16:13