Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cintiadel

[Resolvido] select com top5, inner join, having e max

Recommended Posts

Nesse select eu quero que exiba os 5 locais que tiveram a maior nota de comida de acordo com a categoria selecionada na página CatCozinhas.asp, fiz uma mistura de comandos e tá dando erro nem no sql tá rodando

MelhoresCozinhas.asp à No sql ta dando: Server: Msg 170, Level 15, State 1, Line 6 Line 6: Incorrect syntax near ')'.

E no asp: Fim da instrução esperado /asp/MelhoresCozinhas.asp, line 47

myselCoz= "select top 5 nomeLoc from Local inner join Categoria on Local.catLoc = Categoria.nomeCat where catLoc="&request("nomeCat")" group by ntComida Having Max(ntComida)"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a estrutura das tabelas que você está usando?

Quero primeiramente agradecer a atenção em responder meus tópicos

São duas tabelas que estao utilizando a tabela Categoria e local, elas não tem ligação pq a tabela categoria eu uso somente para preenchimento de dropdown e ai eu pego o nomeCat e jogo na tabela local no campo catLoc. Qualquer dúvida poste de novo.Valeu

 

create table Categoria

(

idCat int identity not for replication not null ,

nomeCat varchar (50) not null

constraint CatPKidCat Primary Key(idCat)

)

 

create table Local

(

idLoc int identity not for replication not null,

nomeLoc varchar (50) not null,

tipoLoc varchar (20) not null,

catLoc varchar (50) not null,

endLoc varchar(50) not null,

numLoc int not null,

compLoc varchar (10) null,

bairLoc varchar (50) not null,

cidLoc char (50) not null,

estLoc char (10) null,

dddLoc int not null,

telLoc varchar (10)not null,

preco varchar (50) null,

ntAmbiente int null,

ntComida int null,

ntServico int null,

comentario nvarchar (100)null,

areaExterna char (10) null,

pDancar char (10) null,

pCriancas char (10) null,

jovens char (10) null,

sVisto char (10) null,

discreto char (10) null,

alternativo char (10) null,

romantico char (10) null,

paquera char (10) null,

musVivo char (10) null,

abertoAp24h char (10) null,

defFisico char (10) null,

seguranca char (10) null,

arCondicionado char (10) null,

vistaBonita char (10) null,

maisVotado char (10) null,

posicaoVotado int null,

fumantes varchar (50) null,

estacionamento varchar (50) null,

diasFechados varchar (50) null,

ticketLoc varchar (50) null,

cartaoLoc varchar (50) null,

observacao varchar (50) NULL

constraint LocalPKidLoc primary key (idLoc)

)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo ntComida, é alterado sempre que recebe uma nota?

Ou seja, ele vai aumentando?

Não a administradora é que altera a nota através do cadastro do cliente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então um order by resolveria, já que a nota é acumulativa, correto?

ele dá erro: fim da instrucao esperada

myselCoz= "select top 5 nomeLoc from Local inner join Categoria on Local.catLoc = Categoria.nomeCat where catLoc='"&request("nomeCat")"'order by ntCategoria"

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta faltando um & apos o request

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta faltando um & apos o request

E também um espaço entre a aspa simples e o order:

myselCoz= "select top 5 nomeLoc from Local inner join Categoria on Local.catLoc = Categoria.nomeCat where catLoc='" & request("nomeCat") & "' order by ntCategoria"

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta faltando um & apos o request

E também um espaço entre a aspa simples e o order:

myselCoz= "select top 5 nomeLoc from Local inner join Categoria on Local.catLoc = Categoria.nomeCat where catLoc='" & request("nomeCat") & "' order by ntCategoria"

 

não me trouxe resultado nenhum, mas não deu erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz essa consulta no banco e vê o que acontece.

dá erro:

Server: Msg 105, Level 15, State 1, Line 3

Unclosed quotation mark before the character string '

'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta executando a consulta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz de novo no banco assim:

select top 5 nomeLoc, ntComida
from Local inner join Categoria on Local.catLoc = Categoria.nomeCat where catLoc='Doceria' order by ntComida

 

mas ele não me traz as de nota maxima, ele simplesmente exibe 5 e não consegui identificar usando q criterios

Compartilhar este post


Link para o post
Compartilhar em outros sites

o criteterio é este campo ntComida crescente

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz de novo no banco assim:

select top 5 nomeLoc, ntComida

from Local inner join Categoria

on Local.catLoc = Categoria.nomeCat where catLoc='Doceria' order by ntComida

 

mas ele não me traz as de nota maxima, ele simplesmente exibe 5 e não consegui identificar usando q criterios

 

eu preciso que pegue o nome do local que tiver as 5 maiores notas de acordo com a categoria selecionada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim:

select top 5 nomeLoc, ntComida
from Local inner join Categoria on Local.catLoc = Categoria.nomeCat where catLoc='Doceria' order by ntComida DESC

assim funcionou no banco só que no código asp ele nao esta pegando a categoria:

 

select top 5 nomeLoc from Local inner join Categoria on Local.catLoc = Categoria.nomeCat where catLoc='' order by ntComida desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

Note que ele não está pegando o catLoc.

where catLoc=''

eu quero q ele pegue o valor selecionado nomeCat da tabela Categoria e compare com catLoc da tabela local

 

Note que ele não está pegando o catLoc.

where catLoc=''

será q tem algo de errado aqui?

<a href="MelhoresCozinhas.asp?catLoc=<%=rsCat("nomeCat")%>"> que é onde ele direciona para aquela pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.