Autor Tópico: Re:Ajuda com o SELECT - RESOLVIDO  (Lida 1688 vezes)

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 331
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:Ajuda com o SELECT - RESOLVIDO
« Online: Outubro 20, 2013, 08:10:04 pm »
Boas....
tenho um aplicativo onde tenho de seleccionar dados de outra tabela com base de variaveis da tabela que estou posicionado.
1º tenho uma tabela de clientes com um grid onde no evento on record activo as seguintes variaveis globais:
$ywnquartos = {nquartos};
sc_set_global($ywnquartos);

$ywtipoimovel = {tipoimovel};
sc_set_global($ywtipoimovel);

$ywconcelho = {concelho};
sc_set_global($ywconcelho);

$ywxpmaximo = {pmaximo};
sc_set_global($ywxpmaximo);

$ywobjectivo = {objectivo};
sc_set_global($ywobjectivo);

$ywpreferencias = {preferencia};
sc_set_global($ywpreferencias);

nesse grid tenho numa coluna um campo tipo HTML onde abro a tabela que pretendo mostrar os dados com base nas variaveis globais atras descritas

o select dessa tabela esta assim:
SELECT
    numero,
    partilha,
    vendedor,
    director,
    data,
    situacaoimovel,
    dias,
    estado,
    tiponegocio,
    tipoimovel,
    proprietario,
    refbanco,
    refinterna,
    nomeproprietario,
    contactos,
    email01,
    observcliente,
    distrito,
    concelho,
    freguesia,
    morada,
    preco,
    anuncio_titulo,
    anuncio_texto,
    anuncio_link,
    tipologia2,
    area_coberta,
    area_descoberta,
    garagem,
    foto_01,
    nquartos,
   negociocliente
FROM
    imoveis where   concelho='[ywconcelho]'  and tipoimovel='[ywtipoimovel]' and  situacaoimovel='DISPONIVEL'  and partilha='TODOS'  and  '[ywobjectivo]'=negociocliente and  nquartos>='[ywnquartos]' and preco<=[ywxpmaximo] ORDER BY preco DESC

SUPOSTAMENTE é isso que não entendo deveria aparecer so regists com o numero de quartos superior ao estipulado na variavel global e com o preço inferior.
ACONTECE que a maior parte das vezes  se o cliente pretende um T4=4quartos (campo indicado na tabela do tipo int) quando lista os imoveis aparecem imoveis com 3 e 2 quartos.
O que estou a fazer mal?
« Última modificação: Novembro 06, 2013, 04:49:46 pm por herberto »
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Ajuda com o SELECT
« Responder #1 Online: Outubro 21, 2013, 01:15:02 am »
Testou um SELECT DISTINCT?
F. A.
Analista de Sistemas

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 331
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:Ajuda com o SELECT
« Responder #2 Online: Outubro 21, 2013, 05:34:21 am »
Olá... sim ja testei e da o mesmo.
De qualquer forma anexo a imagem com o resultado visto o anterior não estar correcto relativamente aos preços.
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Ajuda com o SELECT
« Responder #3 Online: Outubro 21, 2013, 09:19:29 am »
Faz o seguinte, coloca em modo DEBUG e da um print, queria ver como esta vindo esses parâmetros no select! Já que esta usando tantos "And"...
F. A.
Analista de Sistemas

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 331
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:Ajuda com o SELECT
« Responder #4 Online: Outubro 21, 2013, 11:38:52 am »
ai vai... masde outro registo, porque não posso fazer debug no sistema que esta online....
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Ajuda com o SELECT
« Responder #5 Online: Outubro 21, 2013, 11:59:37 am »
Rapaz, não vejo erro com relação ao select, ele esta trazendo o que se esta pedindo, por exemplo veja no nquartos ta pedindo pra trazer números maior ou igual ao escolhido, isso vai com relação aos preços de cada. Você quer que apareça apenas o quarto escolhido?
F. A.
Analista de Sistemas

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 331
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:Ajuda com o SELECT
« Responder #6 Online: Outubro 21, 2013, 12:39:26 pm »
Não!
pretendo que o valor seja inferior ao pedido pelo cliente, e se houver imoveis com tipologia superior a pedida mas com esse valor do cliente apareça...
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Ajuda com o SELECT
« Responder #7 Online: Outubro 21, 2013, 12:54:09 pm »
Cara, tenta fazer uma separação usando ( ), tipo;

Algo mais ou menos assim
Código: [Selecionar]
WHERE concelho = '[ywconcelho]'  and (nquartos >= '[ywnquartos]' and preco <= [ywxpmaximo] );
Fazendo assim ele analisará oque está dentro do ( ) e retornar um true para o parentese inteiro.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 331
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:Ajuda com o SELECT
« Responder #8 Online: Outubro 21, 2013, 01:34:37 pm »
Não faz efeito... os ()... veja o anexo...  lista os inferiores ao preço pedido pelo cliente mas lista outros imoveis com outros quartos... neste caso so seria maior ou igual a 4
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Ajuda com o SELECT
« Responder #9 Online: Outubro 21, 2013, 09:00:33 pm »
Herberto,

Podes nos mostrar a estrutura dessa tabela?
Kleyber Derick

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

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 331
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:Ajuda com o SELECT
« Responder #10 Online: Outubro 22, 2013, 04:36:33 am »
TABELA de IMOVEIS:
CREATE TABLE `imoveis` (
  `numero` int(6) NOT NULL,
  `partilha` varchar(10) NOT NULL,
  `vendedor` varchar(50) NOT NULL,
  `director` varchar(50) NOT NULL,
  `data` date NOT NULL,
  `situacaoimovel` varchar(15) NOT NULL,
  `dias` int(6) NOT NULL,
  `estado` varchar(15) NOT NULL,
  `tiponegocio` varchar(15) NOT NULL,
  `negociocliente` varchar(15) NOT NULL,
  `tipoimovel` varchar(20) NOT NULL,
  `proprietario` varchar(20) NOT NULL,
  `refbanco` varchar(15) NOT NULL,
  `refinterna` varchar(15) NOT NULL,
  `nomeproprietario` varchar(50) NOT NULL,
  `contactos` varchar(40) NOT NULL,
  `email01` varchar(65) NOT NULL,
  `observcliente` text NOT NULL,
  `distrito` varchar(40) NOT NULL,
  `concelho` varchar(40) NOT NULL,
  `freguesia` varchar(50) NOT NULL,
  `morada` text NOT NULL,
  `preco` decimal(10,0) NOT NULL,
  `anuncio_titulo` varchar(100) NOT NULL,
  `anuncio_texto` text NOT NULL,
  `anuncio_link` varchar(200) NOT NULL,
  `tipologia2` varchar(10) NOT NULL,
  `area_coberta` decimal(10,0) NOT NULL,
  `area_descoberta` decimal(10,0) NOT NULL,
  `garagem` varchar(30) NOT NULL,
  `obs_internas` text NOT NULL,
  `foto_01` varchar(200) NOT NULL,
  `foto_02` varchar(200) NOT NULL,
  `foto_03` varchar(200) NOT NULL,
  `foto_04` varchar(200) NOT NULL,
  `foto_05` varchar(200) NOT NULL,
  `foto_06` varchar(200) NOT NULL,
  `valorprestacao` varchar(30) NOT NULL,
  `repetidos` varchar(100) NOT NULL,
  `destacar` varchar(1) NOT NULL,
  `nquartos` int(2) NOT NULL,
  PRIMARY KEY  (`numero`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

TABELA de CLIENTES:
CREATE TABLE `clientes` (
  `numero` int(10) NOT NULL,
  `data` date NOT NULL,
  `estado` varchar(20) NOT NULL,
  `diasestado` int(4) NOT NULL,
  `proveniencia` varchar(30) NOT NULL,
  `vendedor` varchar(50) NOT NULL,
  `nome` varchar(50) NOT NULL,
  `telef01` varchar(15) NOT NULL,
  `telef02` varchar(15) NOT NULL,
  `telef03` varchar(15) NOT NULL,
  `email01` varchar(80) NOT NULL,
  `email02` varchar(80) NOT NULL,
  `nutilizador` int(6) NOT NULL,
  `utilizador` varchar(40) NOT NULL,
  `observacoes` text NOT NULL,
  `director` varchar(50) NOT NULL,
  `qrcode` text NOT NULL,
  `objectivo` varchar(25) NOT NULL,
  `tipoimovel` text NOT NULL,
  `tipologia` text NOT NULL,
  `nquartos` int(2) NOT NULL,
  `estadoimovel` text NOT NULL,
  `pminimo` int(7) NOT NULL,
  `pmaximo` int(7) NOT NULL,
  `anomes` varchar(15) NOT NULL,
  `diasemana` varchar(10) NOT NULL,
  `distrito` text NOT NULL,
  `concelho` text NOT NULL,
  `freguesia` text NOT NULL,
  `encerramento` date NOT NULL,
  `proprietario` varchar(15) NOT NULL,
  `valornegocio` int(10) NOT NULL,
  `valorcomissao` int(8) NOT NULL,
  `obs2` text NOT NULL,
  `datafecho` date NOT NULL,
  PRIMARY KEY  (`numero`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 331
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:Ajuda com o SELECT - RESOLVIDO
« Responder #11 Online: Novembro 05, 2013, 06:23:00 pm »
Olá...
verificou-se passados alguns dias de utilização que para os dados recentes, a coisa esta a funcionar....
Resumindo, por qualquer razão dados registados anteriormente a esta opção não funciona correctamente, após a introdução dos dados está OK!...
Vamos lá perceber porquê?....
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info