[firebase-br] Ajuda com Select em duas tabelas

Luiz Henrique Martino luiz em vmartino.net
Seg Jun 14 09:58:01 -03 2010


Maycon, bom dia!

Imaginando que sua tabelas sejam:

*HISTORIC*: tabela de histórico dos itens
*ITENS*: itens da os

acho que você pode resolver essa consulta com essa query:

SELECT DISTINCT COD, COD_OS, N_ITEM,
(SELECT MAX(COD_OS_SITUACAO) AS MAX_SIT FROM HISTORIC AS H1
WHERE COD_OS_ITENS = ITENS.COD
GROUP BY COD_OS_ITENS
HAVING MAX(COD) = (SELECT MAX(COD) FROM HISTORIC WHERE COD_OS_ITENS =
H1.COD_OS_ITENS)) AS COD_OS_SITUACAO
FROM  ITENS


[]'s
Martino

Em 14 de junho de 2010 08:36, Hélio Oliveira <hpensador em gmail.com> escreveu:

> Maycon, eu teria montado a SP para você mais não entendi bem a estrutura
> das tabelas envolvidas. De qualquer forma vou te dizer como seria a mesma
> basicamente:
>
> create or alter procedure os (
>  os_numero integer)
> returns (
>  ... aqui você irá colocar a lista de campos
>      a serem retornados
> )
> as
> ... Se houver necessidade
>    aqui você irá declarar
>    variaveis
> begin
>  for select
>      from tabela_os
>      where numero = :os_numero
>  into :campo1, :campo2, .... :campoN do
>  begin
>    for select
>        from itens_os
>        where numero_os = :os_numero
>    into :campo1, :campo2, ... :campoN do
>    begin
>      select first 1 ...
>      from situacao_item
>      where numero_os = :os_numero
>        and item_numero = :numero_item
>      into :campo;
>    end
>  end
> end
>
>
> --
> []'s,
>
> Hélio Oliveira
> Analista de Sistemas
> Delphi Developer
> http://hpensador.blogspot.com/
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista