Autor Tópico: Top do SQL Server acusado como erro de SQL  (Lida 399 vezes)

Murilo

  • Novato
  • *
  • Mensagens: 5
Top do SQL Server acusado como erro de SQL
« Online: Outubro 08, 2015, 09:17:58 am »
Saudações galera,estou com problema em uma query executada no SC,esse problema ja esta em outros tópicos mas em nenhum esta respondida,segue o que estou tentando fazer se alguem tiver uma luz ficarei grato

    SELECT TOP 30
   TagTable.TagName,
   FloatTable.Val,
   TagTable.TagIndex,
   FloatTable.TagIndex,
   FloatTable.DateAndTime
FROM
   dbo.TagTable INNER JOIN dbo.FloatTable ON TagTable.TagIndex = FloatTable.TagIndex



A outra maneira de eu limitar os dados de retorno no SQL server de outra forma,sem o select top ?

Haroldo

  • Expert
  • *****
  • Mensagens: 6274
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Top do SQL Server acusado como erro de SQL
« Responder #1 Online: Outubro 08, 2015, 09:41:45 am »
Onde o Sr deseja realizar essa operação?
Qual aplicação ou evento?


Murilo

  • Novato
  • *
  • Mensagens: 5
Re:Top do SQL Server acusado como erro de SQL
« Responder #2 Online: Outubro 08, 2015, 09:49:36 am »
Estou trabalhando com uma consulta,grid.Independente disso sempre quando tento executar uma consulta no SC com o TOP ele retorna erro.

Atenção
Erro ao acessar o banco de dados
The column 'TagIndex' was specified multiple times for 'nm_sel_esp'.
select count(*), sum(Val) as sum_val from (SELECT TOP (120) TagTable.TagName, FloatTable.Val, TagTable.TagIndex, FloatTable.TagIndex, FloatTable.DateAndTime FROM dbo.TagTable INNER JOIN dbo.FloatTable ON TagTable.TagIndex = FloatTable.TagIndex) nm_sel_esp

Haroldo

  • Expert
  • *****
  • Mensagens: 6274
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Top do SQL Server acusado como erro de SQL
« Responder #3 Online: Outubro 08, 2015, 10:20:37 am »
Grids (Consulta no SC) ja vem co o TOP incluso (quando você configura número de linha por pagina). Tente colocar paginação total,, ou crie uma view para esse select e o utilize nessa grid.

Colocar a aplicação em modo debug ajuda a identificar o problema mais facilmente.

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Top do SQL Server acusado como erro de SQL
« Responder #4 Online: Outubro 08, 2015, 10:31:54 am »
Connect (não sabemos seu nome verdadeiro),

O erro está aqui:

TagTable.TagIndex,
FloatTable.TagIndex

Você está definindo 2 campos com o mesmo nome. Crie um alias para um deles ou para os dois, tipo:

TagTable.TagIndex Tag_Index_1,
FloatTable.TagIndex Tag_Index_2
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Top do SQL Server acusado como erro de SQL
« Responder #5 Online: Outubro 08, 2015, 01:53:27 pm »
Uso o SC desde a v4, até a v6 aceitava TOP na query principal, agora não aceita mais, como o Haroldo mencionou o SC já usa o top.
Você pode colocar parcial 30 e não colocar barra de ferramentas de avançar voltar e demais navegações.

Murilo

  • Novato
  • *
  • Mensagens: 5
Re:Top do SQL Server acusado como erro de SQL
« Responder #6 Online: Outubro 09, 2015, 09:26:09 am »
Srs, meu nome é Murilo, Mas mesmo assim ele vai carregar todos os registros,não tem outra forma com where talvez ?

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Top do SQL Server acusado como erro de SQL
« Responder #7 Online: Outubro 09, 2015, 10:05:52 am »
Você pode fazer uma view ou storage procedure e executar pelo SC, acho que assim dará ceerto usar o top....

Murilo

  • Novato
  • *
  • Mensagens: 5
Re:Top do SQL Server acusado como erro de SQL
« Responder #8 Online: Outubro 09, 2015, 11:11:01 am »
Deu certo :) VALEU !!!

CREATE VIEW teste AS
 SELECT TOP 30
   TagTable.TagName,
   FloatTable.Val,
   TagTable.TagIndex Tag_Index_1,
   FloatTable.TagIndex Tag_Index_2,
   FloatTable.DateAndTime
FROM
   dbo.TagTable INNER JOIN dbo.FloatTable ON TagTable.TagIndex = FloatTable.TagIndex
ORDER BY
   FloatTable.DateAndTime DESC, FloatTable.Val DESC, TagTable.TagName DESC

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Top do SQL Server acusado como erro de SQL
« Responder #9 Online: Outubro 09, 2015, 12:01:00 pm »
Legal, mude o título para [RESOLVIDO] Top do SQL Server acusado como erro de SQL