[firebase-br] Erro do FIREBIRD - Subselects

samuel ferreira samuel.peres.ferreira em gmail.com
Qua Dez 7 15:33:51 -03 2005


ola

ate onde sei, seu raciocionio esta certo, mas sua logica esta errada. pra
cada registro da select, e gerado uma sublista da subselect. ou seja, todos
os registros q satisfacam o where vao passar. sugiro fazer o seguinte
select:

SELECT first 2 * FROM TESTE
 WHERE DEPTO=1 AND VALOR < 200


espero ter ajudado

samuel


Em 07/12/05, Joel do Prado Junior <joel em gerasoft.com.br> escreveu:
>
> Fiz o teste aqui no FB 1.0, só tirei o order by do sub-select, e
> funcionou.
> Experimente tirar o order by do Sub-Select.
>
> Marcos Thomaz (Prog_CPD) escreveu:
>
> >Tomando por exemplo a seguinte estrutura:
> >
> >CREATE TABLE TESTE (
> >    ID     INTEGER,
> >    DEPTO  INTEGER,
> >    VALOR  DOUBLE PRECISION,
> >    DATA   DATE
> >);
> >
> >
> >Essa tabela, contém os seguintes valores:
> >
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (1, 1, 100,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (2, 1, 125,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (3, 1, 150,
> '2005-01-13');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (4, 1, 175,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (5, 1, 200,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (6, 1, 225,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (7, 2, 25,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (8, 2, 50,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (9, 2, 75,
> '2005-01-01');
> >INSERT INTO TESTE (ID, DEPTO, VALOR, DATA) VALUES (10, 2, 700,
> >'2005-01-01');
> >
> >
> >Se seu colocar a seguinte select:
> >
> >SELECT FIRST 2 ID FROM TESTE WHERE (DEPTO=1) AND (VALOR < 200) ORDER BY
> ID
> >
> >Me retorna corretamente 2 registros. Quando coloco assim:
> >
> >SELECT * FROM TESTE
> >WHERE ID IN
> >(SELECT FIRST 2 ID FROM TESTE WHERE (DEPTO=1) AND (VALOR < 200) ORDER BY
> ID)
> >
> >Deveria me retornar apenas 2 linhas certo? Porém me retorna todas as
> >linhas,não obedecendo ao FIRST 2.
> >
> >Alguém, saberia dizer se esse erro já foi notificado?? E se foi, uma
> >previsão para essa correção??
> >
> >Testei esse SQL nas versões 1.5.2 e 2.0 do Firebird.
> >
> >
> >
> >______________________________________________
> >FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> >Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> >
> >
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista