Comando Limit = First SQL onde utilizar ?

Esta semana eu precisei fazer um gráfico dos 10 produtos mais vendidos de uma empresa. Utilizei a expressão Limit na Sql para limitar apenas a quantidade de registros (10 registros) que eu estava precisando e estava dando erro. Depois de algum tempo de pesquisa, entendi o erro.
A expressão Limit que eu utilizava em PostgreSQL é incompatível com o Firebird. No Firebird temos que utilizar a expressão First, Exemplo:

SELECT FIRST 10 cup_item.produto, cup_item.descricao, SUM(cup_item.qtde) as Quantidade,cup_item.unitario,
  SUM(cup_item.total), grupo.descricao as Desc_gru
FROM  produto, cup_venda, cup_item, grupo
WHERE  produto.codigo=cup_item.produto
AND cup_item.id_venda=cup_venda.id_venda
AND produto.grupo=grupo.codigo
AND cup_venda.data >= :dInicio
AND cup_venda.data <= :dFinal
GROUP BY  cup_item.produto, cup_item.descricao, Desc_gru, cup_item.unitario
ORDER BY  quantidade desc

Exemplo em PostgreSQL com o comando Limit:

SELECT cup_item.produto, cup_item.descricao, SUM(cup_item.qtde) as Quantidade,cup_item.unitario,
  SUM(cup_item.total), grupo.descricao as Desc_gru
FROM  produto, cup_venda, cup_item, grupo
WHERE  produto.codigo=cup_item.produto
AND cup_item.id_venda=cup_venda.id_venda
AND produto.grupo=grupo.codigo
AND cup_venda.data >= :dInicio
AND cup_venda.data <= :dFinal
GROUP BY  cup_item.produto, cup_item.descricao, Desc_gru, cup_item.unitario
ORDER BY  quantidade desc
LIMIT 10

Então se na nossa tabela existir milhares de registros, não importa, pois só serão exibidos os 10 registros determinados pelo comando Limit ou First.

Publicado por

Daniel Morais

Comecei na área de TI há um bom tempo (1991) com aqueles cursos de MS-DOS 6.22, WordStar, Lotus123, Dbase III Plus, etc. Adorei programar em Dbase III Plus utilizando Dbf; achei fantástico quando aprendi a programar em Clipper Summer 87 e posteriormente Clipper 5.x, que era muito estável em rede utilizando Novell NetWare. Desde então sou um fanático por TI. Hoje desenvolvo aplicações para Windows, Android, OS X e Linux utilizando Lazarus (free Pascal) . Blogueiro (www.infocotidiano.com.br, www.aprendalazarus.com.br, www.startdb.info). Além dos meus Blogs tenho um canal no YouTube o www.youtube.com.br/infocotidiano onde tenho mais de 1 Milhão de visualizações com vídeos de dicas diversificadas que vão desde solucionar um erro de impressão, curso sobre banco de dados, até criar software multi-plataforma utilizando o Lazarus.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *