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

Problema Com Query


ri_nepo

Pergunta

Olá Galera,

quando eu uso essa query funciona

SELECT    TOP 100 PERCENT dbo.TBL_QUIZ_USUARIO.RE_USUARIO, dbo.TBL_QUIZ_USUARIO.NOME_USUARIO, dbo.TBL_QUIZ_USER.NUM_TOTAL_SCORE,

                      RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

                      / 60 AS CHAR(2)))

                      + ':' + REVERSE(SUBSTRING(REVERSE('0' + RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

                      % 60 AS CHAR(2)))), 1, 2)) AS TEMPO, dbo.TBL_QUIZ_USER.DAT_INSERT

FROM        dbo.TBL_QUIZ_USER INNER JOIN

                      dbo.TBL_QUIZ_USUARIO ON dbo.TBL_QUIZ_USER.ID_USER = dbo.TBL_QUIZ_USUARIO.ID_USUARIO

GROUP BY dbo.TBL_QUIZ_USUARIO.RE_USUARIO, dbo.TBL_QUIZ_USUARIO.NOME_USUARIO, dbo.TBL_QUIZ_USER.NUM_TOTAL_SCORE,

                      dbo.TBL_QUIZ_USER.NUM_MINUTES_1, dbo.TBL_QUIZ_USER.NUM_MINUTES_2, dbo.TBL_QUIZ_USER.NUM_MINUTES_3,

                      dbo.TBL_QUIZ_USER.NUM_SECONDS_1, dbo.TBL_QUIZ_USER.NUM_SECONDS_2, dbo.TBL_QUIZ_USER.NUM_SECONDS_3,

                      dbo.TBL_QUIZ_USER.DAT_INSERT

ORDER BY dbo.TBL_QUIZ_USER.NUM_TOTAL_SCORE DESC, TEMPO, dbo.TBL_QUIZ_USER.DAT_INSERT

Mas ai eu preciso que seja feito a soma das horas , ai eu usei o sum e deu o seguinte erro

The sum or average aggregate operation cannot take a varchar data type as an argument.

veja a string como ficou

SELECT    TOP 100 PERCENT dbo.TBL_QUIZ_USUARIO.RE_USUARIO, dbo.TBL_QUIZ_USUARIO.NOME_USUARIO, dbo.TBL_QUIZ_USER.NUM_TOTAL_SCORE,

                      SUM(RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

                      / 60 AS CHAR(2))))

                      + ':' + REVERSE(SUBSTRING(REVERSE('0' + RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

                      % 60 AS CHAR(2)))), 1, 2)) AS TEMPO, dbo.TBL_QUIZ_USER.DAT_INSERT

FROM        dbo.TBL_QUIZ_USER INNER JOIN

                      dbo.TBL_QUIZ_USUARIO ON dbo.TBL_QUIZ_USER.ID_USER = dbo.TBL_QUIZ_USUARIO.ID_USUARIO

GROUP BY dbo.TBL_QUIZ_USUARIO.RE_USUARIO, dbo.TBL_QUIZ_USUARIO.NOME_USUARIO, dbo.TBL_QUIZ_USER.NUM_TOTAL_SCORE,

                      dbo.TBL_QUIZ_USER.NUM_MINUTES_1, dbo.TBL_QUIZ_USER.NUM_MINUTES_2, dbo.TBL_QUIZ_USER.NUM_MINUTES_3,

                      dbo.TBL_QUIZ_USER.NUM_SECONDS_1, dbo.TBL_QUIZ_USER.NUM_SECONDS_2, dbo.TBL_QUIZ_USER.NUM_SECONDS_3,

                      dbo.TBL_QUIZ_USER.DAT_INSERT

ORDER BY dbo.TBL_QUIZ_USER.NUM_TOTAL_SCORE DESC, TEMPO, dbo.TBL_QUIZ_USER.DAT_INSERT

quem puder ajudar eu agredeço

abraços

Ricardo

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

É verdade isso realmente está acontecendo , mas como eu deveria fazer para ele dar um sum somente nos valores númericos

veja por favor a query abaixo

SUM(RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

                      / 60 AS CHAR(2))))

                      + ':' + REVERSE(SUBSTRING(REVERSE('0' + RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

                      % 60 AS CHAR(2)))), 1, 2))

Link para o comentário
Compartilhar em outros sites

  • 0

faz um tempo q não mexo com sql então não lembro. mas no access, se você puser val() funciona. Ele vai somar todos os numericos, e os outros ele faz como se fossem zero. tente assim:

SUM(VAL(RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3) 
                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3) 
                      / 60 AS CHAR(2)))) 
                      + ':' + REVERSE(SUBSTRING(REVERSE('0' + RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)
                      * 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3) 
                      % 60 AS CHAR(2)))), 1, 2)))

se não funcionar, tente verificar as funcoes do sql, de uma olhada no help, q deve ter uma funcao igual ao val.

Link para o comentário
Compartilhar em outros sites

  • 0

O val não funcionou

como eu faria no exemplo que você passou , assim ?

(RTRIM(CAST(SUM((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

* 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

/ 60 AS CHAR(2))))

+ ':' + REVERSE(SUBSTRING(REVERSE('0' + RTRIM(CAST(((dbo.TBL_QUIZ_USER.NUM_MINUTES_1 + dbo.TBL_QUIZ_USER.NUM_MINUTES_2 + dbo.TBL_QUIZ_USER.NUM_MINUTES_3)

* 60 + dbo.TBL_QUIZ_USER.NUM_SECONDS_1 + dbo.TBL_QUIZ_USER.NUM_SECONDS_2 + dbo.TBL_QUIZ_USER.NUM_SECONDS_3)

% 60 AS CHAR(2)))), 1, 2)))

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...