Guest - Marcelo - Postado Agosto 3, 2004 Denunciar Share Postado Agosto 3, 2004 Amigos, boa tarde !!! (Firebird 1.5 / Delphi 5)Tenho duas tabelas e preciso fazer um relatório baseado na estrutura abaixo:Tbl_Itemcod_item-----------------------status---------------------------------------------------------1----------------------------H---------------------------------------------------------- Log_Tbl_Itemcod_log-----------------cod_item---------------status------------------data---------------1---------------------1-------------------------G---------------------01/04/2004----2---------------------1-------------------------H---------------------03/04/2004Preciso fazer uma consulta pegando o registro atual da tabela Item e oregistro anterior ao atual da tabela log, para assim saber qual o seu status anterior, dessa maneira a consulta me retornaria:cod_item---------------status_atual--------------status_anterior-----data-------------1---------------------H-------------------------------G----------01/04/2004Alguém poderia me dar uma ajuda...Estou ficando maluco...Desde já agradeço..Marcelo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Francenelson Postado Agosto 6, 2004 Denunciar Share Postado Agosto 6, 2004 Complicado, hein!!!! Veja isso e tente enxergar a lógica da coisa, pode não funcionar, mas pode abrir seus horizontes...Select i.cod_item, L1.status_atual, L2.status_anterior, L1.data from tbl_Item iInner join Log_Tbl_Item L1 on L1.Cod_item = i.cod_item Inner join Log_Tbl_Item L2 on L2.Cod_Item = i.Cod_itemWhere L1.Cod_log = 1 //Assim eu obtenho o código atual, aparentementeAnd L2.Cod_log = 2 //Assim obtem o anteriorAnd i.Cod_Item = :codigo //Assim especifica qual item quer essas informaçoes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Agosto 7, 2004 Denunciar Share Postado Agosto 7, 2004 Olá amigo, Realmente é complicado mesmo. Mas aqui vai a minha dica, parece ser meio MALUCA mas funciona. Na minha opinião o importante é o resultado. Fiz o teste trazendo o resultado num DBGrid e deu certo.Não sei como você está fazendo a consulta, mas eu fiz apartir do campo Cod_Item da Tabela Item (Foi o que eu entendi).no meu exemplo estou usando um Edit (Edit1) onde é informado o Cod_Item, e Cod_Item, e Cod_Log fiz como tipo -->> Integer.Ok!!!Vamos Lá:1 - inclua duas Query em seu form;2 - inclua o Código abaixo num "button"(por_exemplo): procedure TForm1.Button1Click(Sender: TObject); var i, cod_at, cod_ant : integer; begin Qry1.Close; Qry1.SQL.Clear; Qry1.Sql.Add('Select * from Log_Tbl_Item'); Qry1.Sql.Add('Order by Cod_Log desc'); Qry1.Open; i := 0; Qry1.First; Cod_at := Qry1.FieldByName('Cod_Log').Value; While not Qry1.EOF do begin i := i + 1; cod_ant := Cod_at - Qry1.FieldByNAme('Cod_Log').Value; if i = 2 then Qry1.Last else Qry1.Next; end; Qry2.Close; Qry2.SQL.Clear; Qry2.Sql.Add('Select I.Cod_Item, I.Status Status_Atual,'); Qry2.Sql.Add(' L2.Status Status_Anterior, L1.Data'); Qry2.Sql.Add('From Log_Tbl_Item L1, Log_Tbl_Item L2, Tbl_Item I'); Qry2.Sql.Add('Where L2.Cod_Log = L1.Cod_Log - '+''''+IntToStr(cod_ant)+''''+' and'); Qry2.Sql.Add(' l1.Cod_Log = '+''''+IntToStr(cod_at)+''''+' and'); Qry2.Sql.Add(' L1.Cod_Item = I.Cod_Item and'); Qry2.Sql.Add(' I.Cod_Item = '+''''+Edit1.text+''''+''); Qry2.Open; end; Essa Qry2 é onde você tera o resultado.Qualquer duvida meu e-mail e MSN é naicm@hotmail.comterei prazer em ajudá-lo ou explicar melhor essa dica.até a proxima Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Marcelo -
Amigos, boa tarde !!! (Firebird 1.5 / Delphi 5)
Tenho duas tabelas e preciso fazer um relatório baseado na estrutura abaixo:
Tbl_Item
cod_item-----------------------status-----------------------------------------------------
----1----------------------------H----------------------------------------------------------
Log_Tbl_Item
cod_log-----------------cod_item---------------status------------------data-----------
----1---------------------1-------------------------G---------------------01/04/2004
----2---------------------1-------------------------H---------------------03/04/2004
Preciso fazer uma consulta pegando o registro atual da tabela Item e o
registro anterior ao atual da tabela log, para assim saber qual o seu
status anterior, dessa maneira a consulta me retornaria:
cod_item---------------status_atual--------------status_anterior-----data---------
----1---------------------H-------------------------------G----------01/04/2004
Alguém poderia me dar uma ajuda...Estou ficando maluco...
Desde já agradeço..
Marcelo
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.