[firebase-br] Erro do FIREBIRD - Subselects

Joel do Prado Junior joel em gerasoft.com.br
Qua Dez 7 15:23:34 -03 2005


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
>
>
>  
>




Mais detalhes sobre a lista de discussão lista